improvements: ui improvements & add users to org from project member invite modal

This commit is contained in:
Scott Wilson
2025-02-11 16:14:13 -08:00
parent 4e48ab1eeb
commit 4fdfdc1a39
156 changed files with 1059 additions and 314 deletions
@@ -29,7 +29,7 @@ export const IntegrationsListPage = () => {
const updateSelectedTab = (tab: string) => {
navigate({
to: ROUTE_PATHS.SecretManager.IntegrationsListPage.path,
search: (prev) => ({ ...prev, selectedTab: tab }),
search: (prev) => ({ ...prev, selectedTab: tab as IntegrationsListPageTabs }),
params: {
projectId: currentWorkspace.id
}
@@ -227,7 +227,8 @@ export const SecretSyncsTable = ({ secretSyncs }: Props) => {
await updateSync.mutateAsync({
syncId: secretSync.id,
destination: secretSync.destination,
isAutoSyncEnabled
isAutoSyncEnabled,
projectId: secretSync.projectId
});
createNotification({
@@ -248,7 +249,8 @@ export const SecretSyncsTable = ({ secretSyncs }: Props) => {
try {
await triggerSync.mutateAsync({
syncId: secretSync.id,
destination: secretSync.destination
destination: secretSync.destination,
projectId: secretSync.projectId
});
createNotification({
@@ -1,15 +1,16 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute, redirect } from "@tanstack/react-router";
import { zodValidator } from "@tanstack/zod-adapter";
import { z } from "zod";
import { workspaceKeys } from "@app/hooks/api";
import { fetchSecretSyncsByProjectId, secretSyncKeys } from "@app/hooks/api/secretSyncs";
import { fetchWorkspaceIntegrations } from "@app/hooks/api/workspace/queries";
import { IntegrationsListPageTabs } from "@app/types/integrations";
import { IntegrationsListPage } from "./IntegrationsListPage";
const IntegrationsListPageQuerySchema = z.object({
selectedTab: z
.nativeEnum(IntegrationsListPageTabs)
.catch(IntegrationsListPageTabs.NativeIntegrations)
selectedTab: z.nativeEnum(IntegrationsListPageTabs).optional()
});
export const Route = createFileRoute(
@@ -17,7 +18,47 @@ export const Route = createFileRoute(
)({
component: IntegrationsListPage,
validateSearch: zodValidator(IntegrationsListPageQuerySchema),
beforeLoad: ({ context }) => {
beforeLoad: async ({ context, search, params: { projectId } }) => {
if (!search.selectedTab) {
const secretSyncs = await context.queryClient.ensureQueryData({
queryKey: secretSyncKeys.list(projectId),
queryFn: () => fetchSecretSyncsByProjectId(projectId)
});
if (secretSyncs.length) {
throw redirect({
to: "/secret-manager/$projectId/integrations",
params: {
projectId
},
search: { selectedTab: IntegrationsListPageTabs.SecretSyncs }
});
}
const integrations = await context.queryClient.ensureQueryData({
queryKey: workspaceKeys.getWorkspaceIntegrations(projectId),
queryFn: () => fetchWorkspaceIntegrations(projectId)
});
if (integrations.length) {
throw redirect({
to: "/secret-manager/$projectId/integrations",
params: {
projectId
},
search: { selectedTab: IntegrationsListPageTabs.NativeIntegrations }
});
}
throw redirect({
to: "/secret-manager/$projectId/integrations",
params: {
projectId
},
search: { selectedTab: IntegrationsListPageTabs.SecretSyncs }
});
}
return {
breadcrumbs: [
...context.breadcrumbs,