Back to mini-nostr-saf
SOURCE / PINNED RELEASE

Made of little things.

mini-nostr-saf

Release
72c0506a4a1b…
Author-recorded commit
cec3876ccbdc…
License
LICENSE
Author’s source reference
nostr://npub1whs094x2p7qshzqn77uwm0kx0826f8xdad5ppqet7w9jr6ay5scs99c7wj/wss%3A%2F%2Fgit.napplet.soy%2F/n-599618f6842

Archive hash verified: e3147c802508002b…. The source-to-build association is the author’s claim; it has not been independently rebuilt.

src/main.tsx
import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import { App } from "./App";
import { preloadNappletStorage } from "./napplet-storage";
import "./theme.css";

const rootEl = document.querySelector<HTMLElement>("[data-generated-space-root]");
if (!rootEl) {
  throw new Error("missing generated space root element");
}

// Napplet durable state lives in the SDK storage domain (never localStorage).
// Preload the app's known keys before first render so synchronous readers hit.
const STORAGE_KEYS = [
  "nostr-min-nip46-session-v1",
  "nostr-min-relays-v1",
  "nostr-min-profiles-v1",
  "nostr-min-follows-v1",
  "nostr-min-follows-local-v1",
  "nostr-min-events-v1",
  "nostr-min-view-mode-v1",
  "nostr-min-incognito-v1",
  "nostr-min-filters-v1",
  "nostr-min-longforms-v1",
];

preloadNappletStorage(STORAGE_KEYS).finally(() => {
  createRoot(rootEl).render(
    <StrictMode>
      <div className="hatch-space-root" data-hatch-space-root>
        <App />
      </div>
    </StrictMode>,
  );
});