import { For, createSignal, Show, onMount } from 'solid-js' import type { Author } from '../../graphql/types.gen' import { AuthorCard } from '../Author/Card' import { Icon } from '../Nav/Icon' import { Loading } from '../Loading' import '../../styles/Inbox.scss' // Для моков import { createClient } from '@urql/core' const OWNER_ID = '501' const client = createClient({ url: 'https://graphqlzero.almansi.me/api' }) // interface InboxProps { // chats?: Chat[] // messages?: Message[] // } const [messages, setMessages] = createSignal([]) const [postMessageText, setPostMessageText] = createSignal('') const [loading, setLoading] = createSignal(false) const messageQuery = ` query Comments ($options: PageQueryOptions) { comments(options: $options) { data { id body email } } } ` const newMessageQuery = ` mutation postComment($messageBody: String!) { createComment( input: { body: $messageBody, email: "test@test.com", name: "User" } ) { id body name email } } ` const fetchMessages = async (query) => { const response = await client .query(query, { options: { slice: { start: 0, end: 3 } } }) .toPromise() if (response.error) console.debug('getMessages', response.error) setMessages(response.data.comments.data) } const postMessage = async (msg: string) => { const response = await client.mutation(newMessageQuery, { messageBody: msg }).toPromise() return response.data.createComment } let chatWindow onMount(() => { setLoading(true) fetchMessages(messageQuery) .then(() => { setLoading(false) chatWindow.scrollTop = chatWindow.scrollHeight }) .catch(() => setLoading(false)) }) export const InboxView = () => { const handleSubmit = async () => { postMessage(postMessageText()) .then((result) => { setMessages((prev) => [...prev, result]) }) .then(() => { setPostMessageText('') chatWindow.scrollTop = chatWindow.scrollHeight console.log('!!! msg:', messages()) }) } const handleChangeMessage = (event) => { setPostMessageText(event.target.value) console.log('!!! asd:', postMessageText().trim().length) } // TODO: get user session return (
  • 19:48
    Assumenda delectus deleniti dolores doloribus ducimus, et expedita facere iste laborum, nihil similique suscipit, ut voluptatem. Accusantium consequuntur doloremque ex molestiae nemo.
Online
{(comment: { body: string; id: string; email: string }) => (
{comment.body}
{comment.email} id: {comment.id}
)}
{/*
*/} {/* */} {/*
*/}