1
0
Fork 0

wip(lab): Working on crash reporting in the new dev env

This commit is contained in:
Joost De Cock 2022-03-18 19:11:00 +01:00
parent f100691a92
commit 8a2a13f240
7 changed files with 164 additions and 61 deletions

View file

@ -1,4 +1,4 @@
import { useEffect } from 'react'
import { useEffect, useState } from 'react'
import useLocalStorage from 'shared/hooks/useLocalStorage.js'
import Layout from 'shared/components/layouts/default'
import Menu from 'shared/components/workbench/menu/index.js'
@ -62,6 +62,7 @@ const WorkbenchWrapper = ({ app, pattern, preload=false, from=false }) => {
// State for gist
const [gist, setGist] = useLocalStorage(`${pattern.config.name}_gist`, defaultGist(pattern, app.locale))
const [messages, setMessages] = useState([])
// If we don't have the required measurements,
// force view to measurements
@ -76,7 +77,7 @@ const WorkbenchWrapper = ({ app, pattern, preload=false, from=false }) => {
useEffect(async () => {
if (preload && from && preloaders[from]) {
const g = await preloaders[from](preload, pattern)
// FIXME: Continue here
setGist({ ...gist, ...g.settings })
}
}, [preload, from])
@ -91,6 +92,17 @@ const WorkbenchWrapper = ({ app, pattern, preload=false, from=false }) => {
unset(newGist, path)
setGist(newGist)
}
// Helper methods to handle messages
const feedback = {
add: msg => {
const newMsgs = [...messages]
if (Array.isArray(msg)) newMsgs.push(...msg)
else newMsgs.push(msg)
setMessages(newMsgs)
},
set: setMessages,
clear: () => setMessages([]),
}
// Generate the draft here so we can pass it down
let draft = false
@ -107,7 +119,7 @@ const WorkbenchWrapper = ({ app, pattern, preload=false, from=false }) => {
}
// Props to pass down
const componentProps = { app, pattern, gist, updateGist, unsetGist, setGist, draft }
const componentProps = { app, pattern, gist, updateGist, unsetGist, setGist, draft, feedback }
// Required props for layout
const layoutProps = {
app: app,
@ -121,6 +133,7 @@ const WorkbenchWrapper = ({ app, pattern, preload=false, from=false }) => {
: views.welcome
return <Layout {...layoutProps}>
{messages}
<Component {...componentProps} />
</Layout>
}