- pgSchema "mesh" with 4 tables isolating the peer mesh domain - Enums: visibility, transport, tier, role - audit_log is metadata-only (E2E encryption enforced at broker/client) - Cascade on mesh delete, soft-delete via archivedAt/revokedAt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
24 lines
510 B
TypeScript
24 lines
510 B
TypeScript
"use client";
|
|
|
|
import Image from "next/image";
|
|
import { useTheme } from "next-themes";
|
|
import { preload } from "react-dom";
|
|
|
|
import type { ComponentProps } from "react";
|
|
|
|
export const ThemedImage = ({
|
|
light,
|
|
dark,
|
|
...props
|
|
}: Omit<ComponentProps<typeof Image>, "src"> & {
|
|
light: string;
|
|
dark: string;
|
|
}) => {
|
|
preload(light, { as: "image" });
|
|
preload(dark, { as: "image" });
|
|
|
|
const { resolvedTheme } = useTheme();
|
|
|
|
return <Image src={resolvedTheme === "dark" ? dark : light} {...props} />;
|
|
};
|