This commit is contained in:
Dax Raad 2025-11-19 12:07:36 -05:00 committed by Adam
parent 8afaec6794
commit 43b4f3faa0
No known key found for this signature in database
GPG key ID: 9CB48779AF150E75

View file

@ -4,53 +4,53 @@ import { ParentProps } from "solid-js"
import { Share } from "~/core/share"
const getData = query(async (sessionID) => {
return Share.data(sessionID)
const data = await Share.data(sessionID)
const result: {
session: Session[]
session_diff: {
[sessionID: string]: FileDiff[]
}
message: {
[sessionID: string]: Message[]
}
part: {
[messageID: string]: Part[]
}
} = {
session: [],
session_diff: {
[sessionID]: [],
},
message: {},
part: {},
}
for (const item of data) {
switch (item.type) {
case "session":
result.session.push(item.data)
break
case "session_diff":
result.session_diff[sessionID] = item.data
break
case "message":
result.message[item.data.sessionID] = result.message[item.data.sessionID] ?? []
result.message[item.data.sessionID].push(item.data)
break
case "part":
result.part[item.data.messageID] = result.part[item.data.messageID] ?? []
result.part[item.data.messageID].push(item.data)
break
}
}
return result
}, "getShareData")
export default function (props: ParentProps) {
const params = useParams()
const data = createAsync(async () => {
if (!params.sessionID) return
const data = await getData(params.sessionID)
const result: {
session: Session[]
session_diff: {
[sessionID: string]: FileDiff[]
}
message: {
[sessionID: string]: Message[]
}
part: {
[messageID: string]: Part[]
}
} = {
session: [],
session_diff: {
[params.sessionID]: [],
},
message: {},
part: {},
}
for (const item of data) {
switch (item.type) {
case "session":
result.session.push(item.data)
break
case "session_diff":
result.session_diff[params.sessionID] = item.data
break
case "message":
result.message[item.data.sessionID] = result.message[item.data.sessionID] ?? []
result.message[item.data.sessionID].push(item.data)
break
case "part":
result.part[item.data.messageID] = result.part[item.data.messageID] ?? []
result.part[item.data.messageID].push(item.data)
break
}
}
return result
return getData(params.sessionID)
})
return <pre>{JSON.stringify(data(), null, 2)}</pre>