From 8751ba26ebf7b7761b9e237f2bf3453623dd1018 Mon Sep 17 00:00:00 2001
From: polwex <polwex@sortug.com>
Date: Mon, 6 Oct 2025 10:13:39 +0700
Subject: added frontend WS connection for demonstration purposes

---
 gui/src/components/modals/ShipModal.tsx | 48 +++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 gui/src/components/modals/ShipModal.tsx

(limited to 'gui/src/components/modals/ShipModal.tsx')

diff --git a/gui/src/components/modals/ShipModal.tsx b/gui/src/components/modals/ShipModal.tsx
new file mode 100644
index 0000000..e823a3a
--- /dev/null
+++ b/gui/src/components/modals/ShipModal.tsx
@@ -0,0 +1,48 @@
+import type { Ship } from "@/types/urbit";
+import Modal from "./Modal";
+import Avatar from "../Avatar";
+import Icon from "@/components/Icon";
+import useLocalState from "@/state/state";
+import { useLocation } from "wouter";
+import toast from "react-hot-toast";
+
+export default function ({ ship }: { ship: Ship }) {
+  const { setModal, api } = useLocalState((s) => ({
+    setModal: s.setModal,
+    api: s.api,
+  }));
+  const [_, navigate] = useLocation();
+  function close() {
+    setModal(null);
+  }
+  async function copy(e: React.MouseEvent) {
+    e.stopPropagation();
+    await navigator.clipboard.writeText(ship);
+    toast.success("Copied to clipboard");
+  }
+  return (
+    <Modal close={close}>
+      <div id="ship-modal">
+        <div className="flex">
+          <Avatar p={ship} size={60} />
+          <Icon
+            name="copy"
+            size={20}
+            className="copy-icon cp"
+            onClick={copy}
+            title="Copy ship name"
+          />
+        </div>
+        <div className="buttons f1">
+          <button onClick={() => navigate(`/feed/${ship}`)}>Feed</button>
+          <button onClick={() => navigate(`/pals/${ship}`)}>Profile</button>
+          {ship !== api!.airlock.our && (
+            <>
+              <button onClick={() => navigate(`/chat/dm/${ship}`)}>DM</button>
+            </>
+          )}
+        </div>
+      </div>
+    </Modal>
+  );
+}
-- 
cgit v1.2.3

