···
import { getSession, OAuthUserAgent } from "@atcute/oauth-browser-client";
import { remove } from "@mary/exif-rm";
import { useNavigate, useParams } from "@solidjs/router";
-
import { createEffect, createSignal, For, onCleanup, Show } from "solid-js";
-
import { Editor, editorView } from "../components/editor.jsx";
import { agent } from "../components/login.jsx";
import { sessions } from "./account.jsx";
import { Button } from "./button.jsx";
···
import { TextInput } from "./text-input.jsx";
import Tooltip from "./tooltip.jsx";
export const [placeholder, setPlaceholder] = createSignal<any>();
export const RecordEditor = (props: { create: boolean; record?: any; refetch?: any }) => {
···
const rkey = formData.get("rkey");
-
record = JSON.parse(editorView.state.doc.toString());
···
const editRecord = async (recreate?: boolean) => {
-
const record = editorView.state.doc.toString();
const rpc = new Client({ handler: agent()! });
···
const insertTimestamp = () => {
const timestamp = new Date().toISOString();
-
from: editorView.state.selection.main.head,
insert: `"${timestamp}"`,
···
setError(res.data.error);
-
from: editorView.state.selection.main.head,
insert: JSON.stringify(res.data.blob, null, 2),
···
<div class="min-h-0 flex-1">
-
content={JSON.stringify(
-
!props.create ? props.record
-
: params.rkey ? placeholder()
-
: defaultPlaceholder(),
<div class="flex flex-col gap-2">
···
import { getSession, OAuthUserAgent } from "@atcute/oauth-browser-client";
import { remove } from "@mary/exif-rm";
import { useNavigate, useParams } from "@solidjs/router";
+
import { createEffect, createSignal, For, lazy, onCleanup, Show, Suspense } from "solid-js";
import { agent } from "../components/login.jsx";
import { sessions } from "./account.jsx";
import { Button } from "./button.jsx";
···
import { TextInput } from "./text-input.jsx";
import Tooltip from "./tooltip.jsx";
+
const Editor = lazy(() => import("../components/editor.jsx").then((m) => ({ default: m.Editor })));
+
export const editorInstance = { view: null as any };
export const [placeholder, setPlaceholder] = createSignal<any>();
export const RecordEditor = (props: { create: boolean; record?: any; refetch?: any }) => {
···
const rkey = formData.get("rkey");
+
record = JSON.parse(editorInstance.view.state.doc.toString());
···
const editRecord = async (recreate?: boolean) => {
+
const record = editorInstance.view.state.doc.toString();
const rpc = new Client({ handler: agent()! });
···
const insertTimestamp = () => {
const timestamp = new Date().toISOString();
+
editorInstance.view.dispatch({
+
from: editorInstance.view.state.selection.main.head,
insert: `"${timestamp}"`,
···
setError(res.data.error);
+
editorInstance.view.dispatch({
+
from: editorInstance.view.state.selection.main.head,
insert: JSON.stringify(res.data.blob, null, 2),
···
<div class="min-h-0 flex-1">
+
<div class="flex h-full items-center justify-center">
+
<span class="iconify lucide--loader-circle animate-spin text-xl"></span>
+
content={JSON.stringify(
+
!props.create ? props.record
+
: params.rkey ? placeholder()
+
: defaultPlaceholder(),
<div class="flex flex-col gap-2">