import { createSignal, For, createEffect } from 'solid-js' import styles from './CreateModalContent.module.scss' import { t } from '../../utils/intl' import InviteUser from './InviteUser' import type { Author } from '../../graphql/types.gen' import { hideModal } from '../../stores/ui' import { useInbox } from '../../context/inbox' type inviteUser = Author & { selected: boolean } type query = | { theme: string members: string[] } | undefined type Props = { users: Author[] } const CreateModalContent = (props: Props) => { const inviteUsers: inviteUser[] = props.users.map((user) => ({ ...user, selected: false })) const [theme, setTheme] = createSignal('') const [slugs, setSlugs] = createSignal([]) const [collectionToInvite, setCollectionToInvite] = createSignal(inviteUsers) let textInput: HTMLInputElement const reset = () => { setTheme('') setSlugs([]) hideModal() } createEffect(() => { setSlugs(() => { return collectionToInvite() .filter((user) => { return user.selected === true }) .map((user) => { return user['slug'] }) }) if (slugs().length > 2 && theme().length === 0) { setTheme(t('group_chat')) } }) const handleSetTheme = () => { setTheme(textInput.value.length > 0 && textInput.value) } const handleClick = (user) => { setCollectionToInvite((userCollection) => { return userCollection.map((clickedUser) => user.slug === clickedUser.slug ? { ...clickedUser, selected: !clickedUser.selected } : clickedUser ) }) } const { chatEntities, actions } = useInbox() console.log('!!! chatEntities:', chatEntities) const handleCreate = async () => { try { const initChat = await actions.createChat(slugs(), theme()) console.debug('[initChat]', initChat) } catch (error) { console.error(error) } } return (

{t('create_chat')}

{slugs().length > 2 && ( )}
{(author) => ( handleClick(author)} author={author} selected={author.selected} /> )}
) } export default CreateModalContent