MCPcopy Create free account
hub / github.com/vercel/examples / useDataStateMapper

Function useDataStateMapper

apps/vibe-coding-platform/app/state.ts:117–160  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

115}))
116
117export function useDataStateMapper() {
118 const { addPaths, setSandboxId, setUrl, upsertCommand, addGeneratedFiles } =
119 useSandboxStore()
120 const { errors } = useCommandErrorsLogs()
121 const { setCursor } = useMonitorState()
122
123 return (data: DataUIPart<DataPart>) => {
124 switch (data.type) {
125 case 'data-create-sandbox':
126 if (data.data.sandboxId) {
127 setSandboxId(data.data.sandboxId)
128 }
129 break
130 case 'data-generating-files':
131 if (data.data.status === 'uploaded') {
132 setCursor(errors.length)
133 addPaths(data.data.paths)
134 addGeneratedFiles(data.data.paths)
135 }
136 break
137 case 'data-run-command':
138 if (
139 data.data.commandId &&
140 (data.data.status === 'executing' || data.data.status === 'running')
141 ) {
142 upsertCommand({
143 background: data.data.status === 'running',
144 sandboxId: data.data.sandboxId,
145 cmdId: data.data.commandId,
146 command: data.data.command,
147 args: data.data.args,
148 })
149 }
150 break
151 case 'data-get-sandbox-url':
152 if (data.data.url) {
153 setUrl(data.data.url, crypto.randomUUID())
154 }
155 break
156 default:
157 break
158 }
159 }
160}

Callers 1

ChatProviderFunction · 0.90

Calls 1

useCommandErrorsLogsFunction · 0.85

Tested by

no test coverage detected