diff --git a/packages/studio/src/components/WorkspaceDetailsSheet.tsx b/packages/studio/src/components/WorkspaceDetailsSheet.tsx index e1ccddf5..584981e9 100644 --- a/packages/studio/src/components/WorkspaceDetailsSheet.tsx +++ b/packages/studio/src/components/WorkspaceDetailsSheet.tsx @@ -866,8 +866,12 @@ function MembersSection({ workspaceId }: { workspaceId: string }) { const policy = useWorkspacePolicy(workspaceId) const canManageMembers = policy.can('workspace.manage') + // Admitting everyone edits the workspace itself and backfills the list, + // so one such save leaves both of them stale, + // and the toggle below reads its own state from the workspace rather than here. function invalidate() { queryClient.invalidateQueries({ queryKey: queryKeys.workspaceMembers(workspaceId) }) + queryClient.invalidateQueries({ queryKey: queryKeys.workspaces() }) } if (isLoading) { @@ -945,20 +949,24 @@ function AutoJoinControl({ workspaceId, onChanged }: { }) return ( -
+ // The size sits on the row, not on the two spans inside it. + // A label carries the strut of whatever it inherits, + // so a span cannot shrink the line box, and the box beside it + // ends up centred on a taller line than the one it can see. +
save.mutate(event.target.checked)} - className="mt-0.5 size-3 accent-primary" + className="mt-0.5 size-3 shrink-0 accent-primary" /> -