From 7a6a9741efb4eb839f55641bf04c5b1b5a36c0ef Mon Sep 17 00:00:00 2001 From: Marc-Antoine Parent Date: Wed, 5 Nov 2025 14:24:47 -0500 Subject: [PATCH 1/6] EG-1014: reified relation triple button --- .../src/components/settings/AdminPanel.tsx | 132 +++++++++++++----- .../roam/src/components/settings/Settings.tsx | 3 +- 2 files changed, 97 insertions(+), 38 deletions(-) diff --git a/apps/roam/src/components/settings/AdminPanel.tsx b/apps/roam/src/components/settings/AdminPanel.tsx index 924b37806..16d657482 100644 --- a/apps/roam/src/components/settings/AdminPanel.tsx +++ b/apps/roam/src/components/settings/AdminPanel.tsx @@ -1,5 +1,17 @@ import React, { useState, useEffect } from "react"; -import { HTMLTable, Button, MenuItem, Spinner, Label } from "@blueprintjs/core"; +import { + Button, + Checkbox, + HTMLTable, + Label, + MenuItem, + Spinner, + Tab, + TabId, + Tabs, +} from "@blueprintjs/core"; +import { OnloadArgs } from "roamjs-components/types"; +import Description from "roamjs-components/components/Description"; import { Select } from "@blueprintjs/select"; import { getSupabaseContext, @@ -91,7 +103,8 @@ const NodeTable = ({ nodes }: { nodes: PConceptFull[] }) => { ); }; -const AdminPanel = () => { +const AdminPanel = ({ onloadArgs }: { onloadArgs: OnloadArgs }) => { + const extensionAPI = onloadArgs.extensionAPI; const [context, setContext] = useState(null); const [supabase, setSupabase] = useState(null); const [schemas, setSchemas] = useState([]); @@ -101,6 +114,7 @@ const AdminPanel = () => { const [loading, setLoading] = useState(true); const [loadingNodes, setLoadingNodes] = useState(true); const [error, setError] = useState(null); + const [selectedTabId, setSelectedTabId] = useState("node-list"); useEffect(() => { let ignore = false; @@ -196,41 +210,87 @@ const AdminPanel = () => { } return ( - <> -

- Context:{" "} - {JSON.stringify({ ...context, spacePassword: "****" })} -

- {schemas.length > 0 ? ( - <> - +
+ {loadingNodes ? : } +
+ + ) : ( +

No node schemas found

+ )} + + } + /> + + { + const target = e.target as HTMLInputElement; + extensionAPI.settings.set( + "use-reified-relations", + target.checked, + ); + }} + labelElement={ + <> + Reified Relation Triples + - )} - > -