MCPcopy
hub / github.com/wandb/openui / Prompt

Function Prompt

frontend/src/components/Prompt.tsx:42–628  ·  view source on GitHub ↗
({
	isEditing,
	imageUploadRef
}: {
	isEditing: boolean
	imageUploadRef: React.RefObject<HTMLInputElement>
})

Source from the content-addressed store, hash-verified

40import { Textarea } from './ui/textarea'
41
42export default function Prompt({
43 isEditing,
44 imageUploadRef
45}: {
46 isEditing: boolean
47 imageUploadRef: React.RefObject<HTMLInputElement>
48}) {
49 const currentUI = useContext(CurrentUIContext)
50 const params = useParams()
51 const [searchParams, setSearchParams] = useSearchParams()
52
53 const navigation = useNavigate()
54 const id = params.id ?? 'new'
55 const [item, setItem] = useAtom(historyAtomFamily({ id }))
56 const wrappedItem = useMemo(
57 () => new ItemWrapper(item, setItem),
58 [item, setItem]
59 )
60 const [versionIdx, updateVersion] = useVersion(wrappedItem)
61 const html = wrappedItem.pureHTML(versionIdx)
62
63 const queryRef = useRef<HTMLTextAreaElement>(null)
64 const nextExampleRef = useRef<NodeJS.Timeout>()
65 const [screenshot, setScreenshot] = useAtom(screenshotAtom)
66 const [inspectorEnabled, setInspectorEnabled] = useAtom(inspectorEnabledAtom)
67 const [convertFramework, setConvertFramework] = useAtom(convertFrameworkAtom)
68 const [sidebarState, setSidebarState] = useAtom(historySidebarStateAtom)
69 const modelSupportsImages = useAtomValue(modelSupportsImagesAtom)
70 const [comments, setComments] = useAtom(commentsAtom)
71 const currentRender = useAtomValue(
72 imageDB.item(`screenshot-${id}-${versionIdx}`)
73 )
74 const setImage = useSetAtom(imageDB.item(`image-${id}-${versionIdx}`))
75 const uiState = useAtomValue(uiStateAtom)
76 const dragging = useAtomValue(draggingAtom)
77 const { rendering, annotatedHTML } = uiState
78 const facets = useAtomValue(facetsAtom)
79
80 const model = useAtomValue(modelAtom)
81 const temperature = useAtomValue(temperatureAtom)
82 const saveHistory = useSaveHistory()
83 const [example, setExample] = useState<string>(EXAMPLES[0])
84 const [bufferedExample, setBufferedExample] = useState<string>('')
85 const setHistoryIds = useSetAtom(historyIdsAtom)
86 const [liveMarkdown, setLiveMarkdown] = useState(item.markdown ?? '')
87 const throttledMD = useThrottle(liveMarkdown)
88 const newComponent = useCallback(
89 (prompt: string, clear = true) => {
90 // New state management
91 const newId = nanoid()
92 historyAtomFamily({ id: newId, prompt, createdAt: new Date() })
93 setHistoryIds(prev => [newId, ...prev])
94 navigation(`/ai/${newId}?gen=1&clear=${clear}`)
95 },
96 [navigation, setHistoryIds]
97 )
98 const [isFocused, setIsFocused] = useState(false)
99 const [animate, setAnimate] = useState(false)

Callers

nothing calls this directly

Calls 12

useVersionFunction · 0.90
useSaveHistoryFunction · 0.90
useThrottleFunction · 0.90
createOrRefineFunction · 0.90
newChapterFunction · 0.90
parseMarkdownFunction · 0.90
convertFunction · 0.90
cnFunction · 0.90
resizeImageFunction · 0.90
pureHTMLMethod · 0.80
emitMethod · 0.80
getMethod · 0.80

Tested by

no test coverage detected