import styled from '@emotion/styled'; import { Button, ActionIcon, Textarea } from '@mantine/core'; import { useCallback, useMemo, useState } from 'react'; import { useAppContext } from '../context'; import { Parameters } from '../types'; const Container = styled.div` background: #292933; border-top: thin solid #393933; padding: 1rem 1rem 0 1rem; position: absolute; bottom: 0rem; left: 0; right: 0; .inner { max-width: 50rem; margin: auto; text-align: right; } .settings-button { margin: 0.5rem -0.4rem 0.5rem 1rem; font-size: 0.7rem; color: #999; } `; export declare type OnSubmit = (name?: string) => Promise; function PaperPlaneSubmitButton(props: { onSubmit: any, disabled?: boolean }) { return ( props.onSubmit()}> ); } export interface MessageInputProps { disabled?: boolean; parameters: Parameters; onSubmit: OnSubmit; } export default function MessageInput(props: MessageInputProps) { const context = useAppContext(); const [message, setMessage] = useState(''); const onChange = useCallback((e: React.ChangeEvent) => { setMessage(e.target.value); }, []); const onSubmit = useCallback(async () => { if (await props.onSubmit(message)) { setMessage(''); } }, [message, props.onSubmit]); const onKeyDown = useCallback((e: React.KeyboardEvent) => { if (e.key === 'Enter'&& e.shiftKey === false && !props.disabled) { e.preventDefault(); onSubmit(); } }, [onSubmit, props.disabled]); const rightSection = useMemo(() => { return (
); }, [onSubmit, props.disabled]); const openSystemPromptPanel = useCallback(() => context.settings.open('options', 'system-prompt'), []); const openTemperaturePanel = useCallback(() => context.settings.open('options', 'temperature'), []); return