diff --git a/kleros-app/package.json b/kleros-app/package.json index 2c3de6e35..9ec87e120 100644 --- a/kleros-app/package.json +++ b/kleros-app/package.json @@ -1,6 +1,6 @@ { "name": "@kleros/kleros-app", - "version": "2.0.2", + "version": "2.1.0", "description": "Library for Kleros DApps with reusable abstractions and components.", "repository": "git@github.com:kleros/kleros-v2.git", "homepage": "https://github.com/kleros/kleros-v2/tree/master/kleros-app#readme", diff --git a/web/package.json b/web/package.json index f552fcd85..b4dfab791 100644 --- a/web/package.json +++ b/web/package.json @@ -124,7 +124,7 @@ "react-toastify": "^9.1.3", "react-use": "^17.5.1", "styled-components": "^5.3.3", - "subgraph-status": "^1.2.3", + "subgraph-status": "^1.2.4", "viem": "^2.21.54", "wagmi": "^2.14.10" } diff --git a/web/src/components/Popup/index.tsx b/web/src/components/Popup/index.tsx index 6ef37e4cd..3117e4167 100644 --- a/web/src/components/Popup/index.tsx +++ b/web/src/components/Popup/index.tsx @@ -239,6 +239,9 @@ const Popup: React.FC = ({ const closePopup = () => { setIsOpen(false); resetValue(); + // dispute data is cleared, so if popup is closed the preview will show empty, + // instead redirect to start point. + if (popupType === PopupType.DISPUTE_CREATED) navigate("/resolver"); }; return ( diff --git a/web/src/context/NewDisputeContext.tsx b/web/src/context/NewDisputeContext.tsx index e4988ba5f..f15e2440b 100644 --- a/web/src/context/NewDisputeContext.tsx +++ b/web/src/context/NewDisputeContext.tsx @@ -60,7 +60,7 @@ interface INewDisputeContext { setIsPolicyUploading: (isPolicyUploading: boolean) => void; } -const initialDisputeData: IDisputeData = { +const getInitialDisputeData = (): IDisputeData => ({ numberOfJurors: 3, title: "", description: "", @@ -72,7 +72,9 @@ const initialDisputeData: IDisputeData = { ], aliasesArray: [{ name: "", address: "", id: "1" }], version: "1.0", -}; +}); + +const initialDisputeData = getInitialDisputeData(); const NewDisputeContext = createContext(undefined); @@ -92,7 +94,8 @@ export const NewDisputeProvider: React.FC<{ children: React.ReactNode }> = ({ ch const disputeTemplate = useMemo(() => constructDisputeTemplate(disputeData), [disputeData]); const resetDisputeData = useCallback(() => { - setDisputeData(initialDisputeData); + const freshData = getInitialDisputeData(); + setDisputeData(freshData); }, [setDisputeData]); const contextValues = useMemo( diff --git a/web/src/pages/Resolver/index.tsx b/web/src/pages/Resolver/index.tsx index 386f16c75..1cece5e56 100644 --- a/web/src/pages/Resolver/index.tsx +++ b/web/src/pages/Resolver/index.tsx @@ -1,10 +1,12 @@ -import React from "react"; +import React, { useEffect } from "react"; import styled, { css } from "styled-components"; import { Navigate, Route, Routes, useLocation } from "react-router-dom"; import { useToggle } from "react-use"; import { useAccount } from "wagmi"; +import { useNewDisputeContext } from "context/NewDisputeContext"; + import { MAX_WIDTH_LANDSCAPE, landscapeStyle } from "styles/landscapeStyle"; import { responsiveSize } from "styles/responsiveSize"; @@ -79,7 +81,9 @@ const DisputeResolver: React.FC = () => { const [isDisputeResolverMiniGuideOpen, toggleDisputeResolverMiniGuide] = useToggle(false); const { isConnected } = useAccount(); const isPreviewPage = location.pathname.includes("/preview"); + const { resetDisputeData } = useNewDisputeContext(); + useEffect(() => resetDisputeData(), []); return ( diff --git a/yarn.lock b/yarn.lock index a860da441..d0e7881d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5700,7 +5700,7 @@ __metadata: react-use: "npm:^17.5.1" rimraf: "npm:^6.0.1" styled-components: "npm:^5.3.3" - subgraph-status: "npm:^1.2.3" + subgraph-status: "npm:^1.2.4" typescript: "npm:^5.6.3" viem: "npm:^2.21.54" vite: "npm:^5.4.11" @@ -31647,9 +31647,9 @@ __metadata: languageName: node linkType: hard -"subgraph-status@npm:^1.2.3": - version: 1.2.3 - resolution: "subgraph-status@npm:1.2.3" +"subgraph-status@npm:^1.2.4": + version: 1.2.4 + resolution: "subgraph-status@npm:1.2.4" dependencies: react-slick: "npm:^0.30.2" slick-carousel: "npm:^1.8.1" @@ -31659,7 +31659,7 @@ __metadata: "@types/react-dom": ^18.3.0 react: ^18.3.1 react-dom: ^18.3.1 - checksum: 10/a125ec618073493026a29e9120a1fc73f8a3ad36b24815fe2f4ecd65f8cefa8b19d5bc072ee3f9b72172436c783fc918f6f13b396dddb935c5e70a3bd748888d + checksum: 10/8088ec7440f5d2811fae8b6520f531c60f41a786384a874005646240d22570601a359e5681912ae125aa81e1208f9e2e7c359ca1c81ab92363bbf27688b880bb languageName: node linkType: hard