From 0d26e5e3610ede8593c19e4fcbc1c60434115160 Mon Sep 17 00:00:00 2001
From: Coki <92775570+HashCookie@users.noreply.github.com>
Date: Tue, 16 Jul 2024 18:02:12 +0800
Subject: [PATCH] feat: fix bug that unable to find matchers in model (#132)
---
app/components/editor/hooks/useIndex.tsx | 9 ++++-----
app/components/editor/hooks/useShareInfo.tsx | 6 ++++--
app/components/editor/index.tsx | 3 ++-
next.config.mjs | 1 +
4 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/app/components/editor/hooks/useIndex.tsx b/app/components/editor/hooks/useIndex.tsx
index 7252d80..ce7f95d 100644
--- a/app/components/editor/hooks/useIndex.tsx
+++ b/app/components/editor/hooks/useIndex.tsx
@@ -41,6 +41,9 @@ export default function useIndex() {
setEcho(
Loading Shared Content...
);
fetch(`https://dpaste.com/${hash}.txt`)
.then((resp) => {
+ if (!resp.ok) {
+ throw new Error(`HTTP error! status: ${resp.status}`);
+ }
return resp.text();
})
.then((content) => {
@@ -49,11 +52,7 @@ export default function useIndex() {
setModelTextPersistent(sharedContent.model);
setCustomConfigPersistent(sharedContent.customConfig);
setRequestPersistent(sharedContent.request);
- setRequestPersistent(sharedContent.request);
- if (sharedContent.enforceContext) {
- setEnforceContextDataPersistent(new Map(Object.entries(sharedContent.enforceContext)));
- }
- setRequestResult('');
+ setModelKind(sharedContent.modelKind);
window.location.hash = ''; // prevent duplicate load
setEcho(Shared Content Loaded.
);
})
diff --git a/app/components/editor/hooks/useShareInfo.tsx b/app/components/editor/hooks/useShareInfo.tsx
index 02c02a9..15697c8 100644
--- a/app/components/editor/hooks/useShareInfo.tsx
+++ b/app/components/editor/hooks/useShareInfo.tsx
@@ -19,11 +19,12 @@ interface ShareProps extends ShareFormat {
}
export interface ShareFormat {
+ modelKind: string;
model: string;
policy: string;
customConfig: string;
request: string;
- enforceContext: object;
+ requestResult: object;
}
async function dpaste(content: string) {
@@ -43,11 +44,12 @@ export default function useShareInfo() {
setSharing(true);
props.onResponse(Sharing...
);
const shareContent: ShareFormat = {
+ modelKind: props.modelKind,
model: props.model,
policy: props.policy,
customConfig: props.customConfig,
request: props.request,
- enforceContext: props.enforceContext,
+ requestResult: props.requestResult,
};
dpaste(JSON.stringify(shareContent)).then((url: string) => {
setSharing(false);
diff --git a/app/components/editor/index.tsx b/app/components/editor/index.tsx
index 60bc8d9..6289a78 100755
--- a/app/components/editor/index.tsx
+++ b/app/components/editor/index.tsx
@@ -422,11 +422,12 @@ export const EditorScreen = () => {
onResponse: (v) => {
return handleShare(v);
},
+ modelKind,
model: modelText,
policy,
customConfig,
request,
- enforceContext: Object.entries(enforceContextData),
+ requestResult: Array.from(enforceContextData.entries()),
});
}}
>
diff --git a/next.config.mjs b/next.config.mjs
index 9a147bf..de63c65 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -1,6 +1,7 @@
import GenerateCasbinVersionPlugin from './generateCasbinVersionPlugin.js';
/** @type {import('next').NextConfig} */
const nextConfig = {
+ // reactStrictMode: false,
/**
* Enable static exports for the App Router.
*