Skip to content

Commit 3a95960

Browse files
committed
Merge branch 'main' into COM-20-Updated-Table
# Conflicts: # apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/tests/all/[testId]/page.tsx
2 parents e182497 + eb9df88 commit 3a95960

File tree

242 files changed

+8841
-7164
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

242 files changed

+8841
-7164
lines changed

apps/app/.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,8 @@ yarn-error.log*
4040
*.tsbuildinfo
4141
next-env.d.ts
4242

43-
.trigger
43+
.trigger
44+
45+
# temp files
46+
*/locales/translations.json
47+
*/locales/converter.ts

apps/app/languine.lock

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ files:
204204
onboarding.submit: 85a18a0474d135c1f4c6da6c383a2d81
205205
onboarding.setup: 54efd9605180a9a74e6d1a53529f858e
206206
onboarding.description: fcfd2a71d9095421e290f1b1229d1c6e
207+
onboarding.switch: 7dd9e91261dd30c4cbbb77084b9af1bc
207208
onboarding.trigger.title: c0a683b95c32208c79a08309225647ee
208209
onboarding.trigger.creating: 5c1f94a8b72c6f33012732e6b8ba44e5
209210
onboarding.trigger.completed: 435e0545f0bbfbbbe640e9e12e54c663
@@ -568,6 +569,11 @@ files:
568569
settings.team.invite.button.sent: f98552d4b87007da82818937e16becb1
569570
settings.team.invite.toast.error: 4e7e65d5a93d3037b3dda6f2f485f809
570571
settings.team.invite.toast.unexpected: 48640555cac27f997e813e57b2567719
572+
settings.team.invite.error.title: b3ae1177e33927d873811dab64b96b5f
573+
settings.team.invite.error.description: 3fe295d3d0645eb12d2540f51ee87322
574+
settings.team.invite.error.default: 05fc634188165901fca91a73958314be
575+
settings.team.invite.error.home: d78de1a1ae35d774b5f97ccc434d0697
576+
settings.team.invite.error.signin: f2fdea440d768b85591e936a803c3631
571577
settings.team.member_actions.actions: 06df33001c1d7187fdd81ea1f5b277aa
572578
settings.team.member_actions.change_role: 092c25021695408aaa0a250ca5c6489c
573579
settings.team.member_actions.remove_member: 5f76745afd9e5ee8676f8949544bfb1a
@@ -671,6 +677,9 @@ files:
671677
frameworks.controls.statuses.in_progress: c9413dd7682a45da9ecc9efa8cea47d7
672678
frameworks.controls.statuses.not_started: 10db56f8b10dc989c43fbe33202e5339
673679
errors.unexpected: 325a357f60b95f37fec18b15cb39fbb0
680+
errors.unauthorized.title: 2a5277746841d80f9489dd85fabc769d
681+
errors.unauthorized.description: 118ce881f1bd6df5785ce15698255334
682+
errors.unauthorized.back: 56cf8b33ab527ab81b4f6b3ceac090dd
674683
editor.ai.thinking: aba464039b337eb2e75c2520039de58f
675684
editor.ai.thinking_spinner: aba464039b337eb2e75c2520039de58f
676685
editor.ai.edit_or_generate: 7d46fd8c65c35acb13973849b035cc53
@@ -712,6 +721,49 @@ files:
712721
vendors.dashboard.title: 3b878279a04dc47d60932cb294d96259
713722
vendors.register.title: 122b14e8fa33bc9d4f389700439dfc71
714723
vendors.register.create_new: ef1c7d5e555d7fe288bf0bf16b88723d
724+
vendors.create: ef1c7d5e555d7fe288bf0bf16b88723d
725+
vendors.form.vendor_details: c594485dedf99a5bbae0ce0b1e08c57a
726+
vendors.form.vendor_name: 49ee3087348e8d44e1feda1917443987
727+
vendors.form.vendor_name_placeholder: 76d22a64aa21a6f1fe356624bb42487e
728+
vendors.form.vendor_website: 15bbb9d0bbf25e8d2978de1168c749dc
729+
vendors.form.vendor_website_placeholder: 0edbf3ae0d36cb35fdae8df56396e8f0
730+
vendors.form.vendor_description: b5a7adde1af5c87d7fd797b6245c2a39
731+
vendors.form.vendor_description_placeholder: edd59fcb97919e8a914f29d1b8c94a84
732+
vendors.form.vendor_category: 3adbdb3ac060038aa0e6e6c138ef9873
733+
vendors.form.vendor_category_placeholder: 03368e3c1eb4d2a9048775874301b19f
734+
vendors.form.vendor_status: ec53a8c4f07baed5d8825072c89799be
735+
vendors.form.vendor_status_placeholder: 9aadb017cc5b335be77ba090d5029259
736+
vendors.form.create_vendor_success: 86783216c2055e4b01d9a6d920e418c7
737+
vendors.form.create_vendor_error: ca4cedd93fdb023d6f9748dd3b66b456
738+
vendors.form.update_vendor: 13002cf3244d871685ebac44761efa0f
739+
vendors.form.update_vendor_success: eaedfa5b3ca431e1ca8900a8f0d5c924
740+
vendors.form.update_vendor_error: 92b965a71c44a134e2eae6d71493e4d9
741+
vendors.form.add_comment: a508cd6ee07b35ea8efdf98d6520ce83
742+
vendors.table.name: 49ee3087348e8d44e1feda1917443987
743+
vendors.table.category: 3adbdb3ac060038aa0e6e6c138ef9873
744+
vendors.table.status: ec53a8c4f07baed5d8825072c89799be
745+
vendors.table.owner: b6f4a2ec6356bbd56d49f2096bf9d3d3
746+
vendors.filters.search_placeholder: f40df41fdaa46e2d0503adf12a9304fe
747+
vendors.filters.status_placeholder: 5dd5cd6670a0fc8e47a47aa94d27b8b2
748+
vendors.filters.category_placeholder: 42d00bc24fd43cfe3e2e30d01f39ee95
749+
vendors.filters.owner_placeholder: 2cf13cb9c60a98dee6767692b12e9c2e
750+
vendors.empty_states.no_vendors.title: 69c843f9cf71049dacacff0c48edb7b2
751+
vendors.empty_states.no_vendors.description: 955707a384c1cfc46fafbdebc508f9e0
752+
vendors.empty_states.no_results.title: e576c23d915755d83e2d1f47bd9f6c22
753+
vendors.empty_states.no_results.description: d7fd5c52726c5016a59fb01e74069441
754+
vendors.empty_states.no_results.description_with_filters: 2b70f835ed5a08e817ec9388ce25b41a
755+
vendors.actions.create: ef1c7d5e555d7fe288bf0bf16b88723d
756+
vendors.status.not_assessed: 1a261b378451a287de3a8fbbb6f2a376
757+
vendors.status.in_progress: c9413dd7682a45da9ecc9efa8cea47d7
758+
vendors.status.assessed: 2c051fa737a0d6c7274f4508448b7f8a
759+
vendors.category.cloud: c8e2277ecfb1427838c488c217f99466
760+
vendors.category.infrastructure: cba4f4cee5c6a3e6d8be8da68fa1234e
761+
vendors.category.software_as_a_service: 68c0c53c6a8ab47f4b611dbf1c347a26
762+
vendors.category.finance: c482980d384a9d0e7bc39e1140270870
763+
vendors.category.marketing: 7cb15e416d62919b1b40298324fbe30b
764+
vendors.category.sales: 11ff9f68afb6b8b5b8eda218d7c83a65
765+
vendors.category.hr: fd4c638da5f85d025963f99fe90b1b1a
766+
vendors.category.other: 6311ae17c1ee52b36e68aaf4ad066387
715767
dashboard.risk_status: 6ce5e6fa832289748023cb773a4e89ac
716768
dashboard.risks_by_department: 0ef508d7e840bc5f85547c3b25e5d87b
717769
dashboard.vendor_status: 17029fbe5ad4d2af5feaf37bb4604225

apps/app/next.config.ts

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,42 @@
11
import "./src/env.mjs";
22

33
const config = {
4-
poweredByHeader: false,
5-
reactStrictMode: true,
6-
images: {
7-
remotePatterns: [
8-
{
9-
protocol: "https",
10-
hostname: "**",
11-
},
12-
],
13-
},
14-
transpilePackages: ["@bubba/ui"],
15-
logging: {
16-
fetches: {
17-
fullUrl: process.env.LOG_FETCHES === "true",
18-
},
19-
},
20-
async rewrites() {
21-
return [
22-
{
23-
source: "/ingest/static/:path*",
24-
destination: "https://us-assets.i.posthog.com/static/:path*",
25-
},
26-
{
27-
source: "/ingest/:path*",
28-
destination: "https://us.i.posthog.com/:path*",
29-
},
30-
{
31-
source: "/ingest/decide",
32-
destination: "https://us.i.posthog.com/decide",
33-
},
34-
];
35-
},
36-
skipTrailingSlashRedirect: true,
4+
poweredByHeader: false,
5+
reactStrictMode: true,
6+
images: {
7+
remotePatterns: [
8+
{
9+
protocol: "https",
10+
hostname: "**",
11+
},
12+
],
13+
},
14+
transpilePackages: ["@bubba/ui"],
15+
logging: {
16+
fetches: {
17+
fullUrl: process.env.LOG_FETCHES === "true",
18+
},
19+
},
20+
experimental: {
21+
authInterrupts: true,
22+
},
23+
async rewrites() {
24+
return [
25+
{
26+
source: "/ingest/static/:path*",
27+
destination: "https://us-assets.i.posthog.com/static/:path*",
28+
},
29+
{
30+
source: "/ingest/:path*",
31+
destination: "https://us.i.posthog.com/:path*",
32+
},
33+
{
34+
source: "/ingest/decide",
35+
destination: "https://us.i.posthog.com/decide",
36+
},
37+
];
38+
},
39+
skipTrailingSlashRedirect: true,
3740
};
3841

3942
export default config;

apps/app/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"apply-migrations": "cd ../../packages/db && bunx prisma migrate dev && cd ../../apps/app",
1212
"clean-react": "rm -rf node_modules/react; rm -rf node_modules/react-dom",
1313
"deploy:trigger-prod": "npx trigger.dev@latest deploy",
14+
"analyze-locale-usage": "bunx tsx src/locales/analyze-locale-usage.ts",
1415
"typecheck": "tsc --noEmit"
1516
},
1617
"dependencies": {

apps/app/src/actions/change-organization.ts

Lines changed: 62 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -3,71 +3,74 @@
33
import { authActionClient } from "./safe-action";
44
import { z } from "zod";
55
import { db } from "@bubba/db";
6+
import { revalidatePath } from "next/cache";
67

78
export const changeOrganizationAction = authActionClient
8-
.schema(
9-
z.object({
10-
organizationId: z.string(),
11-
})
12-
)
13-
.metadata({
14-
name: "change-organization",
15-
track: {
16-
event: "create-employee",
17-
channel: "server",
18-
},
19-
})
20-
.action(async ({ parsedInput, ctx }) => {
21-
const { organizationId } = parsedInput;
22-
const { user } = ctx;
9+
.schema(
10+
z.object({
11+
organizationId: z.string(),
12+
}),
13+
)
14+
.metadata({
15+
name: "change-organization",
16+
track: {
17+
event: "create-employee",
18+
channel: "server",
19+
},
20+
})
21+
.action(async ({ parsedInput, ctx }) => {
22+
const { organizationId } = parsedInput;
23+
const { user } = ctx;
2324

24-
const organizationMember = await db.organizationMember.findFirst({
25-
where: {
26-
userId: user.id,
27-
organizationId,
28-
},
29-
});
25+
const organizationMember = await db.organizationMember.findFirst({
26+
where: {
27+
userId: user.id,
28+
organizationId,
29+
},
30+
});
3031

31-
if (!organizationMember) {
32-
return {
33-
success: false,
34-
error: "Unauthorized",
35-
};
36-
}
32+
if (!organizationMember) {
33+
return {
34+
success: false,
35+
error: "Unauthorized",
36+
};
37+
}
3738

38-
try {
39-
const organization = await db.organization.findUnique({
40-
where: {
41-
id: organizationId,
42-
},
43-
});
39+
try {
40+
const organization = await db.organization.findUnique({
41+
where: {
42+
id: organizationId,
43+
},
44+
});
4445

45-
if (!organization) {
46-
return {
47-
success: false,
48-
error: "Organization not found",
49-
};
50-
}
46+
if (!organization) {
47+
return {
48+
success: false,
49+
error: "Organization not found",
50+
};
51+
}
5152

52-
await db.user.update({
53-
where: {
54-
id: user.id,
55-
},
56-
data: {
57-
organizationId: organization.id,
58-
},
59-
});
53+
await db.user.update({
54+
where: {
55+
id: user.id,
56+
},
57+
data: {
58+
organizationId: organization.id,
59+
},
60+
});
6061

61-
return {
62-
success: true,
63-
data: organization,
64-
};
65-
} catch (error) {
66-
console.error("Error changing organization:", error);
62+
revalidatePath(`/${organization.id}`, "layout");
6763

68-
return {
69-
success: false,
70-
error: "Failed to change organization",
71-
};
72-
}
73-
});
64+
return {
65+
success: true,
66+
data: organization,
67+
};
68+
} catch (error) {
69+
console.error("Error changing organization:", error);
70+
71+
return {
72+
success: false,
73+
error: "Failed to change organization",
74+
};
75+
}
76+
});

0 commit comments

Comments
 (0)