import React, { useState } from 'react' import sleep from '../lib/sleep' import { useStorage } from '../lib/use-storage' import { TOKEN_STORAGE_KEY } from '../services/auth' import { client } from '../services/client' import { Button } from './button' import { usePage } from './use-page' type PopupState = 'default' | 'loading' | 'success' export const Popup: React.FC = () => { const [subject, setSubject] = useState('') const [body, setBody] = useState('') const [state, setState] = useState('default') usePage(({ ogTitle, ogDescription, metaDescription, title, url, selectionText, }) => { const description = selectionText || ogDescription || metaDescription const defaultSubject = ogTitle || title const defaultBody = `${url}\n\n${description}`.trim() if ( !subject ) setSubject(defaultSubject) if ( !body ) setBody(defaultBody) }) const token = useStorage(TOKEN_STORAGE_KEY) client.setToken(token) const createNote = async () => { setState('loading') await client.createNote({ subject, content_markdown: body }) setState('success') await sleep(1000) window.close() } return (
setSubject(e.target.value)} placeholder="Note title" className="flex-none form-input block w-full min-w-0 rounded-md transition duration-150 ease-in-out sm:text-sm sm:leading-5" />