From d8bc15d56dc4e0945f8a172ba7eb6eac657b75e5 Mon Sep 17 00:00:00 2001 From: morance Date: Wed, 20 May 2020 19:37:05 +0800 Subject: [PATCH] feat(): clear evaluation refs BRICK_STORE-1486 --- src/hook/emit.ts | 1 + src/panel/components/EvaluationsPanel.tsx | 20 +++++++++++++++++++- src/panel/components/Layout.tsx | 10 +++++++++- src/panel/libs/EvaluationsContext.ts | 2 ++ 4 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/hook/emit.ts b/src/hook/emit.ts index e3381e5..fcb78ee 100644 --- a/src/hook/emit.ts +++ b/src/hook/emit.ts @@ -6,6 +6,7 @@ export function emit(data: EmitData): void { try { const repo: any[] = []; const payload = dehydrate(data.payload, repo); + console.log(data); window.postMessage( { source: MESSAGE_SOURCE_HOOK, diff --git a/src/panel/components/EvaluationsPanel.tsx b/src/panel/components/EvaluationsPanel.tsx index 339aa80..df8a5cf 100644 --- a/src/panel/components/EvaluationsPanel.tsx +++ b/src/panel/components/EvaluationsPanel.tsx @@ -12,7 +12,12 @@ import { useEvaluationsContext } from "../libs/EvaluationsContext"; import { PropList, PropItem } from "./PropList"; export function EvaluationsPanel(): React.ReactElement { - const { evaluations, setEvaluations } = useEvaluationsContext(); + const { + evaluations, + setEvaluations, + preLogs, + savePreLogs, + } = useEvaluationsContext(); const [stringWrap, setStringWrap] = React.useState(false); const [q, setQ] = React.useState(); @@ -43,6 +48,14 @@ export function EvaluationsPanel(): React.ReactElement { [] ); + const handleToggleLogs = React.useCallback( + (event: React.FormEvent) => { + console.log((event.target as HTMLInputElement).checked); + savePreLogs((event.target as HTMLInputElement).checked); + }, + [] + ); + return (
+ ([]); + const [preLogs, savePreLogs] = React.useState(true); const [transformations, setTransformations] = React.useState< Transformation[] >([]); @@ -28,11 +29,18 @@ export function Layout(): React.ReactElement { React.useEffect(() => { function onMessage(event: MessageEvent): void { let data: DehydratedPayload; + console.log(preLogs); if ( event.data?.source === MESSAGE_SOURCE_HOOK && ((data = event.data.payload), data?.type === "evaluation") ) { setEvaluations((prev) => prev.concat(hydrate(data.payload, data.repo))); + } else if ( + event.data?.source === MESSAGE_SOURCE_HOOK && + ((data = event.data.payload), data?.type === "locationChange") && + !preLogs + ) { + setEvaluations([]); } } window.addEventListener("message", onMessage); @@ -73,7 +81,7 @@ export function Layout(): React.ReactElement { > {selectedPanel === "Evaluations" ? ( diff --git a/src/panel/libs/EvaluationsContext.ts b/src/panel/libs/EvaluationsContext.ts index 26a0486..c1395f8 100644 --- a/src/panel/libs/EvaluationsContext.ts +++ b/src/panel/libs/EvaluationsContext.ts @@ -4,6 +4,8 @@ import { Evaluation } from "../../shared/interfaces"; export interface ContextOfEvaluations { evaluations?: Evaluation[]; setEvaluations?: React.Dispatch>; + preLogs?: boolean; + savePreLogs?: React.Dispatch>; } export const EvaluationsContext = React.createContext({});