feat(preferencias): permite ocultar resumo do lancamento

This commit is contained in:
Felipe Coutinho
2026-05-31 15:18:07 -03:00
parent cdcc677787
commit 41eecc2538
11 changed files with 3037 additions and 10 deletions

View File

@@ -0,0 +1,31 @@
"use client";
import { createContext, useContext } from "react";
import type { AppPreferences } from "@/shared/lib/preferences/queries";
const DEFAULT_APP_PREFERENCES: AppPreferences = {
showTransactionSummary: true,
};
const AppPreferencesContext = createContext<AppPreferences>(
DEFAULT_APP_PREFERENCES,
);
type AppPreferencesProviderProps = AppPreferences & {
children: React.ReactNode;
};
export function AppPreferencesProvider({
children,
...preferences
}: AppPreferencesProviderProps) {
return (
<AppPreferencesContext.Provider value={preferences}>
{children}
</AppPreferencesContext.Provider>
);
}
export function useAppPreferences() {
return useContext(AppPreferencesContext);
}

View File

@@ -0,0 +1,24 @@
import { eq } from "drizzle-orm";
import { db, schema } from "@/shared/lib/db";
export type AppPreferences = {
showTransactionSummary: boolean;
};
const DEFAULT_APP_PREFERENCES: AppPreferences = {
showTransactionSummary: true,
};
export async function fetchAppPreferences(
userId: string,
): Promise<AppPreferences> {
const [preferences] = await db
.select({
showTransactionSummary: schema.userPreferences.showTransactionSummary,
})
.from(schema.userPreferences)
.where(eq(schema.userPreferences.userId, userId))
.limit(1);
return preferences ?? DEFAULT_APP_PREFERENCES;
}