From f65ad0c5939749b1a4635cf30fda6b1aecbcbf5f Mon Sep 17 00:00:00 2001 From: Oliver Bryan Date: Sat, 24 Jan 2026 19:44:40 +0000 Subject: [PATCH] implemented organisation features --- packages/frontend/src-tauri/tauri.conf.json | 4 +- packages/frontend/src/components/avatar.tsx | 7 +- .../frontend/src/components/issue-details.tsx | 143 ++++++++++-------- .../frontend/src/components/issues-table.tsx | 47 +++--- .../frontend/src/components/organisations.tsx | 5 +- packages/frontend/src/components/top-bar.tsx | 9 +- packages/frontend/src/main.tsx | 8 - todo.md | 3 - 8 files changed, 120 insertions(+), 106 deletions(-) diff --git a/packages/frontend/src-tauri/tauri.conf.json b/packages/frontend/src-tauri/tauri.conf.json index db3a03e..2c0b872 100644 --- a/packages/frontend/src-tauri/tauri.conf.json +++ b/packages/frontend/src-tauri/tauri.conf.json @@ -5,7 +5,7 @@ "identifier": "com.hex248.sprint", "build": { "beforeDevCommand": "bun run dev", - "devUrl": "http://localhost:1420/app", + "devUrl": "http://localhost:1420/issues", "beforeBuildCommand": "bun run build", "frontendDist": "../dist" }, @@ -18,7 +18,7 @@ "minWidth": 640, "minHeight": 360, "decorations": false, - "url": "/app" + "url": "/issues" } ], "security": { diff --git a/packages/frontend/src/components/avatar.tsx b/packages/frontend/src/components/avatar.tsx index 9a53e8a..cbed993 100644 --- a/packages/frontend/src/components/avatar.tsx +++ b/packages/frontend/src/components/avatar.tsx @@ -1,5 +1,6 @@ import { useSession } from "@/components/session-provider"; import Icon from "@/components/ui/icon"; +import { useSelectedOrganisation } from "@/lib/query/hooks"; import { cn } from "@/lib/utils"; const FALLBACK_COLOURS = [ @@ -59,6 +60,7 @@ export default function Avatar({ className?: string; }) { // if the username matches the authed user, use their avatarURL and name (avoid stale data) + const selectedOrganisation = useSelectedOrganisation(); const { user } = useSession(); const avatarURL = !strong && username && user && username === user.username ? user.avatarURL : _avatarURL; const name = !strong && username && user && username === user.username ? user.name : _name; @@ -73,14 +75,15 @@ export default function Avatar({ "flex items-center justify-center rounded-full", "text-white font-medium select-none", name && "border", - !avatarURL && backgroundClass, + (!avatarURL || !selectedOrganisation?.Organisation.features.userAvatars) && backgroundClass, + "transition-colors", `w-${size || 6}`, `h-${size || 6}`, className, )} > - {avatarURL ? ( + {selectedOrganisation?.Organisation.features.userAvatars && avatarURL ? ( Avatar
- ( - - - - )} - /> + {organisation?.Organisation.features.issueStatus && ( + ( + + + + )} + /> + )}
- {description || isEditingDescription ? ( -