fix: QA audit — lint cleanup, i18n fixes, module visibility, sidebar UX
Some checks failed
Workflow / ʦ TypeScript (push) Failing after 5m40s
Workflow / ⚫️ Test (push) Has been skipped

- Fix 97 lint errors → 0 (unused imports, params, variables across 40+ files)
- Fix i18n key format: colon → dot notation for next-intl compatibility
- Add missing i18n keys (routes.application, routes.home, confirm)
- Fix module visibility: sidebar now respects per-account DB features
- Fix inject function: use dot-notation keys, add collapsed:true defaults
- Fix ConfirmDialog: use useTranslations instead of hardcoded German defaults
- Fix events page: replace placeholder 'Beschreibung' with proper description
- Fix Dockerfile: add NEXT_PUBLIC_CI ARG for Docker builds
- Collapse secondary sidebar sections by default for cleaner UX
This commit is contained in:
Zaid Marzguioui
2026-04-02 14:39:20 +02:00
parent c6d564836f
commit 0bd5d0cf42
56 changed files with 387 additions and 234 deletions

View File

@@ -29,7 +29,7 @@ interface ApplicationWorkflowProps {
export function ApplicationWorkflow({
applications,
accountId,
account,
account: _account,
}: ApplicationWorkflowProps) {
const router = useRouter();

View File

@@ -23,7 +23,7 @@ interface MandateManagerProps {
accountId: string;
}
const SEQUENCE_LABELS: Record<string, string> = {
const _SEQUENCE_LABELS: Record<string, string> = {
FRST: 'Erstlastschrift',
RCUR: 'Wiederkehrend',
FNAL: 'Letzte',

View File

@@ -44,7 +44,7 @@ export function MembersDataTable({
pageSize,
account,
accountId,
duesCategories,
duesCategories: _duesCategories,
}: MembersDataTableProps) {
const router = useRouter();
const searchParams = useSearchParams();

View File

@@ -24,7 +24,7 @@ import { createMemberManagementApi } from '../api';
export const createMember = authActionClient
.inputSchema(CreateMemberSchema)
.action(async ({ parsedInput: input, ctx }) => {
.action(async ({ parsedInput: input, ctx: _ctx }) => {
const client = getSupabaseServerClient();
const logger = await getLogger();
const api = createMemberManagementApi(client);
@@ -58,7 +58,7 @@ export const createMember = authActionClient
export const updateMember = authActionClient
.inputSchema(UpdateMemberSchema)
.action(async ({ parsedInput: input, ctx }) => {
.action(async ({ parsedInput: input, ctx: _ctx }) => {
const client = getSupabaseServerClient();
const logger = await getLogger();
const api = createMemberManagementApi(client);
@@ -77,7 +77,7 @@ export const deleteMember = authActionClient
accountId: z.string().uuid(),
}),
)
.action(async ({ parsedInput: input, ctx }) => {
.action(async ({ parsedInput: input, ctx: _ctx }) => {
const client = getSupabaseServerClient();
const logger = await getLogger();
const api = createMemberManagementApi(client);
@@ -95,7 +95,7 @@ export const approveApplication = authActionClient
accountId: z.string().uuid(),
}),
)
.action(async ({ parsedInput: input, ctx }) => {
.action(async ({ parsedInput: input, ctx: _ctx }) => {
const client = getSupabaseServerClient();
const logger = await getLogger();
const api = createMemberManagementApi(client);
@@ -112,7 +112,7 @@ export const approveApplication = authActionClient
export const rejectApplication = authActionClient
.inputSchema(RejectApplicationSchema)
.action(async ({ parsedInput: input, ctx }) => {
.action(async ({ parsedInput: input, ctx: _ctx }) => {
const client = getSupabaseServerClient();
const logger = await getLogger();
const api = createMemberManagementApi(client);
@@ -297,7 +297,7 @@ export const generateMemberCards = authActionClient
)
.action(async ({ parsedInput: input }) => {
const client = getSupabaseServerClient();
const api = createMemberManagementApi(client);
const _api = createMemberManagementApi(client);
let query = client
.from('members')
@@ -342,7 +342,7 @@ export const inviteMemberToPortal = authActionClient
email: z.string().email(),
}),
)
.action(async ({ parsedInput: input, ctx }) => {
.action(async ({ parsedInput: input, ctx: _ctx }) => {
const client = getSupabaseServerClient();
const logger = await getLogger();
const api = createMemberManagementApi(client);