refactor(web): rename Organisation to Instance

This commit is contained in:
2026-07-24 14:01:19 +01:00
parent 3f0f12b111
commit b70ccc97d4
8 changed files with 76 additions and 76 deletions
@@ -2,7 +2,7 @@
import { useEffect, useState } from "react";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { api, auth as authApi, type OrgUser, type Role } from "@/lib/api";
import { api, auth as authApi, type InstanceUser, type Role } from "@/lib/api";
import { useAuth } from "@/components/AuthProvider";
import { Badge, Button, Card, Modal, Table, Tbody, Td, Th, Thead, Tr } from "@/components/ui";
@@ -35,12 +35,12 @@ function MembersCard() {
const [password, setPassword] = useState("");
const [role, setRole] = useState<Role>("member");
const { data: users, isLoading, error } = useQuery({ queryKey: ["org-users"], queryFn: api.listOrgUsers });
const { data: users, isLoading, error } = useQuery({ queryKey: ["instance-users"], queryFn: api.listInstanceUsers });
const invalidate = () => queryClient.invalidateQueries({ queryKey: ["org-users"] });
const invalidate = () => queryClient.invalidateQueries({ queryKey: ["instance-users"] });
const { mutate: createUser, isPending: creating, error: createError } = useMutation({
mutationFn: () => api.createOrgUser({ email, password, role }),
mutationFn: () => api.createInstanceUser({ email, password, role }),
onSuccess: () => {
invalidate();
setAddOpen(false);
@@ -51,7 +51,7 @@ function MembersCard() {
});
const { mutate: changeRole, error: roleError } = useMutation({
mutationFn: ({ userId, next }: { userId: string; next: Role }) => api.updateOrgUserRole(userId, next),
mutationFn: ({ userId, next }: { userId: string; next: Role }) => api.updateInstanceUserRole(userId, next),
onSuccess: invalidate,
@@ -59,7 +59,7 @@ function MembersCard() {
});
const { mutate: removeUser, error: removeError } = useMutation({
mutationFn: (userId: string) => api.deleteOrgUser(userId),
mutationFn: (userId: string) => api.deleteInstanceUser(userId),
onSuccess: invalidate,
});
@@ -76,7 +76,7 @@ function MembersCard() {
<div>
<h2 className="text-base font-semibold text-text-primary">Members</h2>
<p className="mt-0.5 text-sm text-text-secondary">
People with access to this organization. Owners and admins can manage settings.
People with access to this instance. Owners and admins can manage settings.
</p>
</div>
<Button variant="primary" size="sm" onClick={() => setAddOpen(true)}>
@@ -110,7 +110,7 @@ function MembersCard() {
</Tr>
</Thead>
<Tbody>
{users.map((u: OrgUser) => {
{users.map((u: InstanceUser) => {
const isSelf = u.user_id === user?.user_id;
const locked = isSelf || (u.role === "owner" && !isOwner);
@@ -149,7 +149,7 @@ function MembersCard() {
variant="ghost"
size="sm"
onClick={() => {
if (confirm(`Remove ${u.email} from this organization?`)) removeUser(u.user_id);
if (confirm(`Remove ${u.email} from this instance?`)) removeUser(u.user_id);
}}
>
Remove
@@ -226,7 +226,7 @@ function MembersCard() {
function OIDCCard() {
const queryClient = useQueryClient();
const { data: cfg, isLoading } = useQuery({ queryKey: ["org-oidc"], queryFn: api.getOrgOIDC });
const { data: cfg, isLoading } = useQuery({ queryKey: ["instance-oidc"], queryFn: api.getInstanceOIDC });
const [issuer, setIssuer] = useState("");
const [clientId, setClientId] = useState("");
@@ -247,9 +247,9 @@ function OIDCCard() {
}, [cfg]);
const { mutate: save, isPending, error } = useMutation({
mutationFn: () => api.saveOrgOIDC({ issuer, client_id: clientId, client_secret: clientSecret, enabled }),
mutationFn: () => api.saveInstanceOIDC({ issuer, client_id: clientId, client_secret: clientSecret, enabled }),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ["org-oidc"] });
queryClient.invalidateQueries({ queryKey: ["instance-oidc"] });
setClientSecret("");
setSaved(true);
setTimeout(() => setSaved(false), 3000);
@@ -279,7 +279,7 @@ function OIDCCard() {
<div className="mb-4">
<h2 className="text-base font-semibold text-text-primary">Single Sign-On (OIDC)</h2>
<p className="mt-0.5 text-sm text-text-secondary">
Let members sign in with your identity provider. Users are provisioned into this organization on
Let members sign in with your identity provider. Users are provisioned into this instance on
first sign-in.
</p>
</div>
@@ -357,7 +357,7 @@ function OIDCCard() {
onChange={(e) => setEnabled(e.target.checked)}
className="h-4 w-4 rounded border-border bg-surface-2 accent-accent"
/>
Enable SSO sign-in for this organization
Enable SSO sign-in for this instance
</label>
{enabled && !secretSet && !clientSecret && (
@@ -383,8 +383,8 @@ function OIDCCard() {
);
}
export default function OrgSettingsPage() {
const { org, isAdmin } = useAuth();
export default function InstanceSettingsPage() {
const { instance, isAdmin } = useAuth();
if (!isAdmin) {
return (
@@ -392,7 +392,7 @@ export default function OrgSettingsPage() {
<Card className="max-w-lg">
<h1 className="text-base font-semibold text-text-primary">You don&apos;t have access</h1>
<p className="mt-1 text-sm text-text-secondary">
Organization settings are available to owners and admins only. Ask an administrator if you need
Instance settings are available to owners and admins only. Ask an administrator if you need
access.
</p>
</Card>
@@ -403,9 +403,9 @@ export default function OrgSettingsPage() {
return (
<div className="p-8">
<div className="mb-8">
<h1 className="text-2xl font-bold text-text-primary">Organization</h1>
<h1 className="text-2xl font-bold text-text-primary">Instance</h1>
<p className="mt-1 text-sm text-text-secondary">
{org ? `Manage members and sign-in for ${org.name}.` : "Manage members and sign-in."}
{instance ? `Manage members and sign-in for ${instance.name}.` : "Manage members and sign-in."}
</p>
</div>