summaryrefslogtreecommitdiff
path: root/gui/src/components/Sigil.tsx
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-10-06 10:13:39 +0700
committerpolwex <polwex@sortug.com>2025-10-06 10:13:39 +0700
commit8751ba26ebf7b7761b9e237f2bf3453623dd1018 (patch)
treedc37f12b3fd9b1a1e7a1b54a51c80697f37a04e8 /gui/src/components/Sigil.tsx
parent6704650dcfccf609ccc203308df9004e0b511bb6 (diff)
added frontend WS connection for demonstration purposes
Diffstat (limited to 'gui/src/components/Sigil.tsx')
-rw-r--r--gui/src/components/Sigil.tsx50
1 files changed, 50 insertions, 0 deletions
diff --git a/gui/src/components/Sigil.tsx b/gui/src/components/Sigil.tsx
new file mode 100644
index 0000000..cbc2e57
--- /dev/null
+++ b/gui/src/components/Sigil.tsx
@@ -0,0 +1,50 @@
+import Icon from "@/components/Icon";
+import { auraToHex } from "@/logic/utils";
+import { isValidPatp } from "urbit-ob";
+import { sigil } from "urbit-sigils";
+import { reactRenderer } from "urbit-sigils";
+
+interface SigilProps {
+ patp: string;
+ size: number;
+ bg?: string;
+ fg?: string;
+}
+
+const Sigil = (props: SigilProps) => {
+ const bg = props.bg ? auraToHex(props.bg) : "var(--color-background)";
+ const fg = props.fg ? auraToHex(props.fg) : "var(--color-primary)";
+ if (props.patp.length > 28)
+ return (
+ <Icon
+ name="comet"
+ size={props.size}
+ className="comet-icon"
+ />
+ );
+ else if (props.patp.length > 15)
+ // moons
+ return (
+ <>
+ {sigil({
+ patp: props.patp.substring(props.patp.length - 13),
+ renderer: reactRenderer,
+ size: props.size,
+ colors: ["grey", "white"],
+ })}
+ </>
+ );
+ else
+ return (
+ <>
+ {sigil({
+ patp: props.patp,
+ renderer: reactRenderer,
+ size: props.size,
+ colors: [bg, fg],
+ })}
+ </>
+ );
+};
+
+export default Sigil;