+29
-1
src/views/record.tsx
+29
-1
src/views/record.tsx
···
10
10
import { JSONValue } from "../components/json.jsx";
11
11
import { agent } from "../components/login.jsx";
12
12
import { Modal } from "../components/modal.jsx";
13
-
import { pds, setCID, setValidRecord, setValidSchema, validRecord } from "../components/navbar.jsx";
13
+
import { pds, setCID } from "../components/navbar.jsx";
14
14
import Tooltip from "../components/tooltip.jsx";
15
15
import { setNotif } from "../layout.jsx";
16
16
import { didDocCache, resolvePDS } from "../utils/api.js";
···
27
27
const [externalLink, setExternalLink] = createSignal<
28
28
{ label: string; link: string; icon?: string } | undefined
29
29
>();
30
+
const [validRecord, setValidRecord] = createSignal<boolean | undefined>(undefined);
31
+
const [validSchema, setValidSchema] = createSignal<boolean | undefined>(undefined);
30
32
const did = params.repo;
31
33
let rpc: Client;
32
34
···
146
148
</A>
147
149
</div>
148
150
<div class="flex gap-1">
151
+
<div class="mr-1 flex gap-3">
152
+
<Tooltip
153
+
text={
154
+
validRecord() === undefined ? "Validating"
155
+
: validRecord() === false ?
156
+
"Invalid record"
157
+
: "Valid record"
158
+
}
159
+
>
160
+
<span
161
+
classList={{
162
+
"iconify lucide--lock-keyhole": validRecord() === true,
163
+
"iconify lucide--lock-keyhole-open text-red-500 dark:text-red-400":
164
+
validRecord() === false,
165
+
"iconify lucide--loader-circle animate-spin": validRecord() === undefined,
166
+
}}
167
+
></span>
168
+
</Tooltip>
169
+
<Show when={validSchema() !== undefined}>
170
+
<Tooltip text={validSchema() ? "Valid schema" : "Invalid schema"}>
171
+
<span
172
+
class={`iconify ${validSchema() ? "lucide--file-check" : "lucide--file-x text-red-500 dark:text-red-400"}`}
173
+
></span>
174
+
</Tooltip>
175
+
</Show>
176
+
</div>
149
177
<Show when={agent() && agent()?.sub === record()?.uri.split("/")[2]}>
150
178
<RecordEditor create={false} record={record()?.value} refetch={refetch} />
151
179
<Tooltip text="Delete">