From c67a39ac7c53e88075d882d5019e4bbd7456592e Mon Sep 17 00:00:00 2001 From: OmgRod <89850217+OmgRod@users.noreply.github.com> Date: Sat, 19 Apr 2025 10:02:43 +0100 Subject: [PATCH 01/51] fix(?): Fixed a typo in "/join" ( Fixes #29) --- apps/frontend/public/locales/en/getstarted.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/frontend/public/locales/en/getstarted.json b/apps/frontend/public/locales/en/getstarted.json index 425e38a4..d562efd1 100644 --- a/apps/frontend/public/locales/en/getstarted.json +++ b/apps/frontend/public/locales/en/getstarted.json @@ -3,7 +3,7 @@ "title": "How would you like to participate?", "visit": { "title": "Explore BuildTheEarth", - "subtitle": "Visit countries, cities and even villages, which we have already build.", + "subtitle": "Visit countries, cities and even villages, which we have already built.", "button": "Join the server" }, "build": { From 0f482be9dbdedd71e1c17676e9e3a538c9c8c409 Mon Sep 17 00:00:00 2001 From: Nudesuppe42 Date: Sun, 20 Apr 2025 12:36:59 +0200 Subject: [PATCH 02/51] ci(dash/src): :construction_worker: Update base image to node:22-alpine and optimize RUN commands --- apps/dashboard/Dockerfile | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/apps/dashboard/Dockerfile b/apps/dashboard/Dockerfile index dec2aedd..1a107073 100644 --- a/apps/dashboard/Dockerfile +++ b/apps/dashboard/Dockerfile @@ -1,8 +1,7 @@ -FROM node:21-alpine AS base +FROM node:22-alpine AS base FROM base AS builder -RUN apk update -RUN apk add --no-cache libc6-compat +RUN apk update && apk add --no-cache libc6-compat WORKDIR /app # Run turbo (will prune the lockfile to only include target dependencies) @@ -12,8 +11,7 @@ RUN turbo prune dashboard --docker # Add lockfile and package.json's of isolated subworkspace FROM base AS installer -RUN apk update -RUN apk add --no-cache libc6-compat +RUN apk update && apk add --no-cache libc6-compat WORKDIR /app # First install the dependencies (as they change less often) @@ -35,8 +33,8 @@ ENV NODE_ENV production ENV NEXT_TELEMETRY_DISABLED 1 # Create a runner user -RUN addgroup --system --gid 1001 nodejs -RUN adduser --system --uid 1001 nextjs +RUN addgroup --system --gid 1001 nodejs && \ + adduser --system --uid 1001 nextjs USER nextjs # Reduce image size From eee07a93311a0b72c5b17c05beb20a93f79c8047 Mon Sep 17 00:00:00 2001 From: Nudesuppe42 Date: Sun, 20 Apr 2025 12:47:13 +0200 Subject: [PATCH 03/51] fix(dash/src): :construction_worker: Enable corepack for yarn 4 --- apps/dashboard/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/dashboard/Dockerfile b/apps/dashboard/Dockerfile index 1a107073..f1f32a54 100644 --- a/apps/dashboard/Dockerfile +++ b/apps/dashboard/Dockerfile @@ -1,4 +1,5 @@ FROM node:22-alpine AS base +RUN corepack enable FROM base AS builder RUN apk update && apk add --no-cache libc6-compat From 3ed419e22da778520eefe9650f09d186c91dc7b3 Mon Sep 17 00:00:00 2001 From: Nudesuppe42 Date: Sun, 20 Apr 2025 14:08:54 +0200 Subject: [PATCH 04/51] fix(frontend/gallery): :bug: Working blurDataURL / hashes of images on gallery page. fixes #13 --- .vscode/settings.json | 3 +- .../src/components/BackgroundImage.tsx | 7 ++-- apps/frontend/src/components/GalleryGrid.tsx | 3 +- apps/frontend/src/pages/gallery.tsx | 32 ++++++++++--------- 4 files changed, 22 insertions(+), 23 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index eb5d4a82..c13a314c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -29,6 +29,7 @@ "frontend/seo", "api/applications", "api/claims", - "frontend/legal" + "frontend/legal", + "frontend/gallery" ] } diff --git a/apps/frontend/src/components/BackgroundImage.tsx b/apps/frontend/src/components/BackgroundImage.tsx index ea7499db..686ba60f 100644 --- a/apps/frontend/src/components/BackgroundImage.tsx +++ b/apps/frontend/src/components/BackgroundImage.tsx @@ -22,12 +22,9 @@ export default function Background({ Mountains { noAnimation hash={ img?.hash || - "'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAA1JREFUGFdj0NE3+g8AAqUBjTCztj4AAAAASUVORK5CYII='" + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAA1JREFUGFdj0NE3+g8AAqUBjTCztj4AAAAASUVORK5CYII' } /> @@ -67,20 +67,22 @@ const MePage: NextPage = ({ data }: any) => { data ?.sort((a: any, b: any) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()) .slice(activePage * 20 - 20, activePage * 20) - .map((d: any) => ({ - name: d?.title + (d?.city ? ', ' + d.city : ''), - src: `https://cdn.buildtheearth.net/uploads/${d?.image?.name}`, - date: d?.createdAt, - team: { - name: d?.buildTeam.name, - slug: d?.buildTeam.slug, - logo: d?.buildTeam.icon, - }, - hash: - d?.image?.hash || - 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAA1JREFUGFdj0NE3+g8AAqUBjTCztj4AAAAASUVORK5CYII=', - onClick: () => setFocus(d?.image?.name), - })) || [{}] + .map((d: any) => { + return { + name: d?.title + (d?.city ? ', ' + d.city : ''), + src: `https://cdn.buildtheearth.net/uploads/${d?.image?.name}`, + date: d?.createdAt, + team: { + name: d?.buildTeam.name, + slug: d?.buildTeam.slug, + logo: d?.buildTeam.icon, + }, + hash: + d?.image?.hash || + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAA1JREFUGFdj0NE3+g8AAqUBjTCztj4AAAAASUVORK5CYII=', + onClick: () => setFocus(d?.image?.name), + }; + }) || [{}] } showTooltipOnHover={true} /> From 7517103cc61e8f77d87957e0ec7e83f8c9aaaca7 Mon Sep 17 00:00:00 2001 From: Nudesuppe42 Date: Sun, 20 Apr 2025 14:42:36 +0200 Subject: [PATCH 05/51] fix(dash/src): :bug: Set remotePatterns for remote images --- apps/dashboard/next.config.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/apps/dashboard/next.config.ts b/apps/dashboard/next.config.ts index 20ce639b..8136ea61 100644 --- a/apps/dashboard/next.config.ts +++ b/apps/dashboard/next.config.ts @@ -19,7 +19,20 @@ const nextConfig: NextConfig = { poweredByHeader: false, outputFileTracingRoot: path.join(__dirname, '../../'), images: { - domains: ['cdn.buildtheearth.net'], + remotePatterns: [ + { + protocol: 'https', + hostname: 'cdn.buildtheearth.net', + port: '', + pathname: '/uploads/**', + }, + { + protocol: 'https', + hostname: 'cdn.buildtheearth.net', + port: '', + pathname: '/static/**', + }, + ], }, }; From cb91a26dd5b9aa02d59b7c4e9f5917b4d76fd143 Mon Sep 17 00:00:00 2001 From: Nudesuppe42 Date: Sun, 20 Apr 2025 17:48:40 +0200 Subject: [PATCH 06/51] feat(dash/me): :sparkles: Add pagination and search to application list --- .../src/app/me/applications/[id]/loading.tsx | 2 +- .../src/app/me/applications/[id]/page.tsx | 22 ++++-- .../src/app/me/applications/interactivity.tsx | 71 +++++++++++++++++++ .../src/app/me/applications/page.tsx | 55 ++++++++++++-- 4 files changed, 138 insertions(+), 12 deletions(-) create mode 100644 apps/dashboard/src/app/me/applications/interactivity.tsx diff --git a/apps/dashboard/src/app/me/applications/[id]/loading.tsx b/apps/dashboard/src/app/me/applications/[id]/loading.tsx index edf04ded..0eb80f85 100644 --- a/apps/dashboard/src/app/me/applications/[id]/loading.tsx +++ b/apps/dashboard/src/app/me/applications/[id]/loading.tsx @@ -6,7 +6,7 @@ import { IconLoader } from '@tabler/icons-react'; export default async function Page() { return ( - + Application XXXXXXXX diff --git a/apps/dashboard/src/app/me/applications/[id]/page.tsx b/apps/dashboard/src/app/me/applications/[id]/page.tsx index b7224ecb..abcc3337 100644 --- a/apps/dashboard/src/app/me/applications/[id]/page.tsx +++ b/apps/dashboard/src/app/me/applications/[id]/page.tsx @@ -26,6 +26,7 @@ export default async function Page({ params }: { params: Promise<{ id: string }> status: true, reason: true, trial: true, + reviewedAt: true, }, }); @@ -60,20 +61,29 @@ export default async function Page({ params }: { params: Promise<{ id: string }> const alertContent = applicationStatusToAlert(application.status); return ( - + Application {id.split('-')[0]} ({application.buildteam.name}) - - + + {toHumanDate(application.createdAt)} ({moment(application.createdAt).fromNow()}) + + {application.reviewedAt === null ? ( + '-/-' + ) : ( + <> + {toHumanDate(application.reviewedAt)} ({moment(application.reviewedAt).fromNow()}) + + )} + {alertContent.description} {successorApplications.length > 0 && ( - We have found a more recent application for this BuildTeam. You can view it{' '} + We have found a more recent application for this Build Region. You can view it{' '} here @@ -105,14 +115,14 @@ export default async function Page({ params }: { params: Promise<{ id: string }> Your application to {application.buildteam.name} has been declined.{' '} {application.reason ? ( <> - The BuildTeam has provided the following reason: + The Build Region has provided the following reason: ) : ( <> )} {application.reason ? ( -
+
{application.reason}
) : ( diff --git a/apps/dashboard/src/app/me/applications/interactivity.tsx b/apps/dashboard/src/app/me/applications/interactivity.tsx new file mode 100644 index 00000000..eb88ffbf --- /dev/null +++ b/apps/dashboard/src/app/me/applications/interactivity.tsx @@ -0,0 +1,71 @@ +'use client'; + +import { ActionIcon, Pagination, PaginationProps, TextInput, TextInputProps, rem } from '@mantine/core'; +import { IconSearch, IconX } from '@tabler/icons-react'; +import { usePathname, useRouter, useSearchParams } from 'next/navigation'; +import { useEffect, useState } from 'react'; + +import { useDebouncedValue } from '@mantine/hooks'; + +export function SearchApplications(props: TextInputProps) { + const [value, setValue] = useState(''); + const [debounced] = useDebouncedValue(value, 500); + const router = useRouter(); + const params = useSearchParams(); + const pathname = usePathname(); + + useEffect(() => { + if (debounced != (params.get('query') || '')) { + if (debounced) { + router.push(`${pathname}?query=${debounced}&page=1`); + } else { + router.push(`${pathname}?page=1`); + } + } + }, [debounced, params, pathname, router]); + + return ( + setValue('')}> + + + ) : ( + + ) + } + value={value} + onChange={(event) => setValue(event.currentTarget.value)} + {...props} + /> + ); +} + +export function ApplicationPagination({ + pageSize, + applicationCount, + ...props +}: { pageSize: number; applicationCount: number } & Omit) { + const router = useRouter(); + const params = useSearchParams(); + const pathname = usePathname(); + + const changePage = (page: number) => { + if (params.get('query') === null) { + router.push(`${pathname}?page=${page}`); + } else { + router.push(`${pathname}?query=${params.get('query')}&page=${page}`); + } + }; + + return ( + + ); +} diff --git a/apps/dashboard/src/app/me/applications/page.tsx b/apps/dashboard/src/app/me/applications/page.tsx index da125968..e109e8e4 100644 --- a/apps/dashboard/src/app/me/applications/page.tsx +++ b/apps/dashboard/src/app/me/applications/page.tsx @@ -8,11 +8,53 @@ import { applicationStatusToColor, applicationStatusToIcon, applicationStatusToT import { IconCalendar, IconCalendarCheck } from '@tabler/icons-react'; import moment from 'moment'; import Link from 'next/link'; +import { ApplicationPagination, SearchApplications } from './interactivity'; -export default async function Page() { +export default async function Page({ + searchParams, +}: { + searchParams: Promise<{ page: string | undefined; query: string | undefined }>; +}) { const session = await getSession(); + const page = (await searchParams).page; + const searchQuery = (await searchParams).query; + + const applicationCount = await prisma.application.count({ + where: { + user: { ssoId: session?.user?.id }, + AND: searchQuery + ? { + OR: [ + { id: { contains: searchQuery } }, + { buildteam: { OR: [{ id: searchQuery }, { name: searchQuery }, { slug: searchQuery }] } }, + ], + } + : undefined, + }, + }); + const applications = await prisma.application.findMany({ - where: { user: { ssoId: session?.user?.id } }, + take: 10, + skip: (Number(page || '1') - 1) * 10, + where: { + user: { ssoId: session?.user?.id }, + AND: searchQuery + ? { + OR: [ + { id: { contains: searchQuery } }, + { + buildteam: { + OR: [ + { id: { contains: searchQuery } }, + { name: { contains: searchQuery } }, + { slug: { contains: searchQuery } }, + ], + }, + }, + ], + } + : undefined, + }, select: { id: true, buildteam: { select: { id: true, slug: true, icon: true, name: true } }, @@ -31,10 +73,12 @@ export default async function Page() { Your Applications - Applications are requests to join a specific BuildTeam as a member. Each BuildTeam has its own requirements and - application questions. You can apply to multiple BuildTeams at once, but please keep in mind that each BuildTeam - reviews applications separately. Click on an application to view its status and your answers. + Applications are requests to join a specific Build Region as a member. Each Build Region has its own + requirements and application questions. You can apply to multiple Build Regions at once, but please keep in mind + that each Build Region reviews applications separately. Click on an application to view its status and your + answers. + {applications .sort((a, b) => (a.status === 'SEND' ? -1 : b.status === 'SEND' ? 1 : 0)) @@ -97,6 +141,7 @@ export default async function Page() { ); })} + ); } From 731907c6828696ce1916f47bfb766f86ebc4cfc3 Mon Sep 17 00:00:00 2001 From: Nudesuppe42 Date: Sun, 20 Apr 2025 18:17:19 +0200 Subject: [PATCH 07/51] refactor(dash/src): :truck: Rename BuildTeam to Build Region @george112n --- .../src/app/am/applications/[id]/page.tsx | 2 +- .../src/app/am/applications/datatable.tsx | 2 +- .../src/app/am/applications/interactivity.tsx | 4 +- .../src/app/am/applications/loading.tsx | 2 +- .../src/app/am/applications/page.tsx | 2 +- .../src/app/am/claims/[id]/interactivity.tsx | 14 +++---- .../dashboard/src/app/am/claims/[id]/page.tsx | 6 +-- .../dashboard/src/app/am/claims/datatable.tsx | 2 +- .../src/app/am/teams/[id]/interactivity.tsx | 4 +- apps/dashboard/src/app/am/teams/[id]/page.tsx | 24 ++++++------ .../am/teams/[id]/transfer/interactivity.tsx | 38 +++++++++---------- .../app/am/teams/[id]/transfer/loading.tsx | 2 +- .../src/app/am/teams/[id]/transfer/page.tsx | 4 +- apps/dashboard/src/app/am/teams/datatable.tsx | 4 +- apps/dashboard/src/app/am/teams/loading.tsx | 4 +- apps/dashboard/src/app/am/teams/page.tsx | 2 +- .../src/app/am/users/[ssoId]/datatable.tsx | 2 +- .../src/app/am/users/[ssoId]/page.tsx | 28 +++++++------- .../src/app/me/applications/[id]/loading.tsx | 2 +- .../src/app/me/applications/[id]/page.tsx | 4 +- .../src/app/me/applications/loading.tsx | 7 ++-- apps/dashboard/src/app/me/teams/loading.tsx | 6 +-- apps/dashboard/src/app/page.tsx | 4 +- .../src/util/application/reviewActivity.ts | 4 +- .../src/util/cron/reviewActivityCheck.ts | 6 +-- apps/dashboard/src/util/links.ts | 6 +-- apps/dashboard/src/util/transformers.ts | 14 +++---- 27 files changed, 100 insertions(+), 99 deletions(-) diff --git a/apps/dashboard/src/app/am/applications/[id]/page.tsx b/apps/dashboard/src/app/am/applications/[id]/page.tsx index c504722f..73f9dd4b 100644 --- a/apps/dashboard/src/app/am/applications/[id]/page.tsx +++ b/apps/dashboard/src/app/am/applications/[id]/page.tsx @@ -51,7 +51,7 @@ export default async function Page({ params }: { params: Promise<{ id: string }> - + diff --git a/apps/dashboard/src/app/am/applications/datatable.tsx b/apps/dashboard/src/app/am/applications/datatable.tsx index cf5d8498..eb6dfe67 100644 --- a/apps/dashboard/src/app/am/applications/datatable.tsx +++ b/apps/dashboard/src/app/am/applications/datatable.tsx @@ -55,7 +55,7 @@ export default function ApplicationsDatatable({ { accessor: 'createdAt', title: 'Created At', render: ({ createdAt }: any) => toHumanDateTime(createdAt) }, { accessor: 'buildteam.name', - title: 'BuildTeam', + title: 'Build Region', render: ({ buildteam }: any) => , }, { diff --git a/apps/dashboard/src/app/am/applications/interactivity.tsx b/apps/dashboard/src/app/am/applications/interactivity.tsx index 4281e292..cedcf581 100644 --- a/apps/dashboard/src/app/am/applications/interactivity.tsx +++ b/apps/dashboard/src/app/am/applications/interactivity.tsx @@ -30,8 +30,8 @@ export function SearchApplications(props: GroupProps) { }, { value: 'team', - label: 'BuildTeam', - example: 'BuildTeam Name, Country, IP, Invite, Slug...', + label: 'Build Region', + example: 'Build Region Name, Country, IP, Invite, Slug...', }, ]; diff --git a/apps/dashboard/src/app/am/applications/loading.tsx b/apps/dashboard/src/app/am/applications/loading.tsx index 694c4271..66b23635 100644 --- a/apps/dashboard/src/app/am/applications/loading.tsx +++ b/apps/dashboard/src/app/am/applications/loading.tsx @@ -7,7 +7,7 @@ export default async function Page() { - Team Applications + Region Applications diff --git a/apps/dashboard/src/app/am/applications/page.tsx b/apps/dashboard/src/app/am/applications/page.tsx index ec32eed0..73ff6833 100644 --- a/apps/dashboard/src/app/am/applications/page.tsx +++ b/apps/dashboard/src/app/am/applications/page.tsx @@ -80,7 +80,7 @@ export default async function Page({ - Team Applications + Region Applications applications={applications} count={applicationCount} /> diff --git a/apps/dashboard/src/app/am/claims/[id]/interactivity.tsx b/apps/dashboard/src/app/am/claims/[id]/interactivity.tsx index 934afd56..8f9c2437 100644 --- a/apps/dashboard/src/app/am/claims/[id]/interactivity.tsx +++ b/apps/dashboard/src/app/am/claims/[id]/interactivity.tsx @@ -44,19 +44,19 @@ export function EditMenu({ claim }: { claim: Claim & { buildTeam: BuildTeam } }) } - aria-label="Transfer Claim to other buildteam" + aria-label="Transfer Claim to other Build Region" rel="noopener" onClick={() => { modals.open({ id: 'change-buildteam', centered: true, - title: 'Change assigned BuildTeam', + title: 'Change assigned Build Region', size: 'lg', children: , }); }} > - Change BuildTeam + Change Build Region Danger Zone - Active BuildTeam + Active Build Region - New BuildTeam + New Build Region ); diff --git a/apps/dashboard/src/app/am/claims/[id]/page.tsx b/apps/dashboard/src/app/am/claims/[id]/page.tsx index 8e27c8d3..5e97ac4a 100644 --- a/apps/dashboard/src/app/am/claims/[id]/page.tsx +++ b/apps/dashboard/src/app/am/claims/[id]/page.tsx @@ -75,7 +75,7 @@ export default async function Page({ params }: { params: Promise<{ id: string }> - + @@ -155,13 +155,13 @@ export default async function Page({ params }: { params: Promise<{ id: string }> {getCountryNames(claim.buildTeam.location.split(', ')).includes( claim.osmName?.split(', ').at(-1) || '#', ) ? ( - + ) : ( - + diff --git a/apps/dashboard/src/app/am/claims/datatable.tsx b/apps/dashboard/src/app/am/claims/datatable.tsx index 3d06699f..40b70344 100644 --- a/apps/dashboard/src/app/am/claims/datatable.tsx +++ b/apps/dashboard/src/app/am/claims/datatable.tsx @@ -47,7 +47,7 @@ export default function ClaimsDatatable({ claims, count }: { claims: Claim[]; co }, { accessor: 'buildTeam', - title: 'BuildTeam', + title: 'Build Region', render: ({ buildTeam }: any) => (buildTeam ? : ''), }, { diff --git a/apps/dashboard/src/app/am/teams/[id]/interactivity.tsx b/apps/dashboard/src/app/am/teams/[id]/interactivity.tsx index e5964bf4..19a6339a 100644 --- a/apps/dashboard/src/app/am/teams/[id]/interactivity.tsx +++ b/apps/dashboard/src/app/am/teams/[id]/interactivity.tsx @@ -37,12 +37,12 @@ export function EditMenu({ team }: { team: BuildTeam }) { } color="red" - aria-label="Delete or Transfer Team" + aria-label="Delete or Transfer Region" component={Link} href={`/am/teams/${team.id}/transfer?ref=transfer`} rel="noopener" > - Transfer Team + Transfer Region diff --git a/apps/dashboard/src/app/am/teams/[id]/page.tsx b/apps/dashboard/src/app/am/teams/[id]/page.tsx index 96a29b22..5caf8826 100644 --- a/apps/dashboard/src/app/am/teams/[id]/page.tsx +++ b/apps/dashboard/src/app/am/teams/[id]/page.tsx @@ -75,7 +75,7 @@ export default async function Page({ params }: { params: Promise<{ id: string }> }, }, }); - if (!team) throw Error('Could not find BuildTeam'); + if (!team) throw Error('Could not find Build Region'); const teamApplicationsByStatus = await prisma.application.groupBy({ where: { buildteamId: id }, @@ -133,7 +133,7 @@ export default async function Page({ params }: { params: Promise<{ id: string }> - + @@ -184,7 +184,7 @@ export default async function Page({ params }: { params: Promise<{ id: string }> {reviewActivity.par > 30 ? ( - + @@ -217,8 +217,8 @@ export default async function Page({ params }: { params: Promise<{ id: string }> icon={} > The applications to {team.name} are disabled. This means that no new applications can be submitted to this - BuildTeam. This might be due to a high number of pending applications, or other reasons. Please note, that - the graphics below might not be accurate, as they are based on the latest data available. + Build Region. This might be due to a high number of pending applications, or other reasons. Please note, + that the graphics below might not be accurate, as they are based on the latest data available. ) : undefined} @@ -249,9 +249,9 @@ export default async function Page({ params }: { params: Promise<{ id: string }> title="Low review activity" icon={} > - This BuildTeam's review activity score is critically low. This indicates significant problems - with the review process, likely due to many pending applications or long review times. Please get in - contact with the BuildTeam to resolve this issue. + This Build Region's review activity score is critically low. This indicates significant + problems with the review process, likely due to many pending applications or long review times. + Please get in contact with the Build Region to resolve this issue. ) : reviewActivity.ras < 3.75 ? ( title="Moderate review activity" icon={} > - This BuildTeam's review activity score is below a good level. This indicates that there are + This Build Region's review activity score is below a good level. This indicates that there are areas where application review can be improved, possibly from pending application backlogs or - longer-than-desired review times. Please get in contact with the BuildTeam to prevent this from + longer-than-desired review times. Please get in contact with the Build Region to prevent this from getting worse. ) : ( @@ -278,8 +278,8 @@ export default async function Page({ params }: { params: Promise<{ id: string }> title={`${reviewActivity.ras > 4.5 ? 'Perfect' : 'Good'} review activity`} icon={} > - The review activity score of this BuildTeam is above 3.75. This means that the BuildTeam is - performing well in reviewing applications. This is a good sign, and the BuildTeam is likely to be + The review activity score of this Build Region is above 3.75. This means that the Build Region is + performing well in reviewing applications. This is a good sign, and the Build Region is likely to be efficient in reviewing applications. )} diff --git a/apps/dashboard/src/app/am/teams/[id]/transfer/interactivity.tsx b/apps/dashboard/src/app/am/teams/[id]/transfer/interactivity.tsx index fa98d30d..e48ce8c5 100644 --- a/apps/dashboard/src/app/am/teams/[id]/transfer/interactivity.tsx +++ b/apps/dashboard/src/app/am/teams/[id]/transfer/interactivity.tsx @@ -41,84 +41,84 @@ export function TransferStepper({ id }: { id: string }) { id: 'move-claims', icon: IconPolygon, title: 'Move Claims', - description: `Transfer all claims made by this team to the destination team.`, + description: `Transfer all claims made by this Build Region to the destination Build Region.`, button: 'Claims', }, { id: 'move-showcases', icon: IconPhoto, title: 'Move Showcase Images', - description: `Transfer all showcase images made by this team to the destination team.`, + description: `Transfer all showcase images made by this Build Region to the destination Build Region.`, button: 'Showcase Images', }, { id: 'move-calendar', icon: IconCalendar, title: 'Move Calendar Events', - description: `Transfer all calendar events made by this team to the destination team.`, + description: `Transfer all calendar events made by this Build Region to the destination Build Region.`, button: 'Calendar Events', }, { id: 'copy-members', icon: IconUsersGroup, title: 'Add Members', - description: `Add all members of this team to the destination team.`, + description: `Add all members of this Build Region to the destination Build Region.`, button: 'Members', }, { id: 'delete-applications', icon: IconForms, title: 'Delete Applications', - description: `Delete all applications to this team.`, + description: `Delete all applications to this Build Region.`, button: 'Applications', }, { id: 'delete-application-questions', icon: IconQuestionMark, title: 'Delete Application Questions', - description: `Delete all application questions of this team.`, + description: `Delete all application questions of this Build Region.`, button: 'Application Questions', }, { id: 'delete-application-responses', icon: IconMessage, title: 'Delete Application Response Templates', - description: `Delete all application response templates of this team.`, + description: `Delete all application response templates of this Build Region.`, button: 'Application Response Templates', }, { id: 'delete-socials', icon: IconBrandDiscord, title: 'Delete Socials', - description: `Delete all socials of this team.`, + description: `Delete all socials of this Build Region.`, button: 'Socials', }, { id: 'delete-permissions', icon: IconUsers, title: 'Remove Managers', - description: `Remove all users with special permissions from this team.`, + description: `Remove all users with special permissions from this Build Region.`, button: 'Managers', }, { id: 'remove-members', icon: IconUsersGroup, title: 'Remove Members', - description: `Remove all users from this team.`, + description: `Remove all users from this Build Region.`, button: 'Members', }, { id: 'delete-team', icon: IconTrash, - title: 'Delete Team', - description: `Delete this team.`, - button: 'Team', + title: 'Delete Build Region', + description: `Delete this Build Region.`, + button: 'Build Region', }, { id: 'reload-data', icon: IconReload, title: 'Refresh Data', - description: `Refreshes all data on the destination team.`, + description: `Refreshes all data on the destination Build Region.`, button: 'Reload & Finish', }, ]; @@ -128,16 +128,16 @@ export function TransferStepper({ id }: { id: string }) { }> Actions performed on this page are irreversible and cause heavy data mutations. Please be careful of what you - are doing here. You will need to confirm every action. To get started, select the destination team you want to - transfer some of the data (Showcase Images, Claims, Members, Calendar Events) to below. + are doing here. You will need to confirm every action. To get started, select the destination Build Region you + want to transfer some of the data (Showcase Images, Claims, Members, Calendar Events) to below.