mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
refactor(settings): reorganize into actions/components/schemas/hooks
This commit is contained in:
@@ -3,7 +3,7 @@ import {Page, PageContent, PageHeader, PageTitle} from "@/features/layout/compon
|
||||
import {db} from "@/db";
|
||||
import {logger} from "@/lib/logger";
|
||||
import {notFound} from "next/navigation";
|
||||
import {SettingsTabs} from "@/features/settings/settings-tabs";
|
||||
import {SettingsTabs} from "@/features/settings/components/settings-tabs";
|
||||
import {desc, isNull} from "drizzle-orm";
|
||||
import * as drizzleDb from "@/db";
|
||||
import {StorageChannelWith} from "@/db/schema/12_storage-channel";
|
||||
|
||||
@@ -18,11 +18,11 @@ import type {
|
||||
OnboardingDefaultsData,
|
||||
} from "@/features/onboarding/types";
|
||||
import { getChannelIcon } from "@/features/channel/components/channels-helpers";
|
||||
import { updateNotificationSettingsAction } from "@/features/settings/notification.action";
|
||||
import { updateStorageSettingsAction } from "@/features/settings/storage.action";
|
||||
import { updateAvatarModeAction } from "@/features/settings/avatar.action";
|
||||
import { AvatarModeSelector } from "@/features/settings/avatar-mode-selector";
|
||||
import { DicebearStylePicker } from "@/features/settings/dicebear-style-picker";
|
||||
import { updateNotificationSettingsAction } from "@/features/settings/actions/notification.action";
|
||||
import { updateStorageSettingsAction } from "@/features/settings/actions/storage.action";
|
||||
import { updateAvatarModeAction } from "@/features/settings/actions/avatar.action";
|
||||
import { AvatarModeSelector } from "@/features/settings/components/avatar-mode-selector";
|
||||
import { DicebearStylePicker } from "@/features/settings/components/dicebear-style-picker";
|
||||
|
||||
export const StepDefaults = () => {
|
||||
const { next, updateContext, state } = useOnboarding();
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
"use server";
|
||||
import { z } from "zod";
|
||||
import { EmailFormSchema } from "@/features/settings/email-form.schema";
|
||||
import { EmailFormSchema } from "@/features/settings/schemas/email-form.schema";
|
||||
import { eq } from "drizzle-orm";
|
||||
import { db } from "@/db";
|
||||
import * as drizzleDb from "@/db";
|
||||
+1
-1
@@ -7,7 +7,7 @@ import {eq} from "drizzle-orm";
|
||||
import {ServerActionResult} from "@/types/action-type";
|
||||
import {Setting} from "@/db/schema/01_setting";
|
||||
import {z} from "zod";
|
||||
import {DefaultNotificationSchema} from "@/features/settings/notification.schema";
|
||||
import {DefaultNotificationSchema} from "@/features/settings/schemas/notification.schema";
|
||||
import {withUpdatedAt} from "@/db/utils";
|
||||
|
||||
export const updateNotificationSettingsAction = userAction
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
import { z } from "zod";
|
||||
import { db } from "@/db";
|
||||
import { S3FormSchema, StorageSwitchSchema } from "@/features/settings/storage-s3.schema";
|
||||
import { S3FormSchema, StorageSwitchSchema } from "@/features/settings/schemas/storage-s3.schema";
|
||||
import { eq } from "drizzle-orm";
|
||||
import * as drizzleDb from "@/db";
|
||||
import {userAction} from "@/lib/safe-actions/actions";
|
||||
+1
-1
@@ -7,7 +7,7 @@ import {eq} from "drizzle-orm";
|
||||
import {ServerActionResult} from "@/types/action-type";
|
||||
import {Setting} from "@/db/schema/01_setting";
|
||||
import {z} from "zod";
|
||||
import {DefaultStorageSchema} from "@/features/settings/storage.schema";
|
||||
import {DefaultStorageSchema} from "@/features/settings/schemas/storage.schema";
|
||||
import {withUpdatedAt} from "@/db/utils";
|
||||
|
||||
export const updateStorageSettingsAction = userAction
|
||||
+3
-3
@@ -5,9 +5,9 @@ import { useMutation } from "@tanstack/react-query";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { toast } from "sonner";
|
||||
import { Setting } from "@/db/schema/01_setting";
|
||||
import { updateAvatarModeAction } from "@/features/settings/avatar.action";
|
||||
import { AvatarModeSelector } from "@/features/settings/avatar-mode-selector";
|
||||
import { DicebearStylePicker } from "@/features/settings/dicebear-style-picker";
|
||||
import { updateAvatarModeAction } from "@/features/settings/actions/avatar.action";
|
||||
import { AvatarModeSelector } from "@/features/settings/components/avatar-mode-selector";
|
||||
import { DicebearStylePicker } from "@/features/settings/components/dicebear-style-picker";
|
||||
import type { AvatarMode } from "@/features/onboarding/types";
|
||||
|
||||
type Props = { settings: Setting };
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
import { AlertCircle, Loader2 } from "lucide-react";
|
||||
import { cn } from "@/lib/utils";
|
||||
import { useDiceBearStyles } from "@/features/settings/use-dicebear-styles";
|
||||
import { useDiceBearStyles } from "@/features/settings/hooks/use-dicebear-styles";
|
||||
|
||||
const DEMO_SEED = "portabase";
|
||||
|
||||
+2
-2
@@ -18,11 +18,11 @@ import {Tooltip, TooltipContent, TooltipProvider, TooltipTrigger} from "@/compon
|
||||
import {
|
||||
EmailFormSchema,
|
||||
EmailFormType
|
||||
} from "@/features/settings/email-form.schema";
|
||||
} from "@/features/settings/schemas/email-form.schema";
|
||||
import {PasswordInput} from "@/components/ui/password-input";
|
||||
import {
|
||||
updateEmailSettingsAction
|
||||
} from "@/features/settings/email-form.action";
|
||||
} from "@/features/settings/actions/email-form.action";
|
||||
import {toast} from "sonner";
|
||||
import {useRouter} from "next/navigation";
|
||||
import {sendEmail} from "@/lib/email";
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
"use client"
|
||||
import {EmailForm} from "@/features/settings/email-form";
|
||||
import {EmailForm} from "@/features/settings/components/email-form";
|
||||
import {Setting} from "@/db/schema/01_setting";
|
||||
import {EmailFormType} from "@/features/settings/email-form.schema";
|
||||
import {EmailFormType} from "@/features/settings/schemas/email-form.schema";
|
||||
|
||||
|
||||
export type SettingsEmailSectionProps = {
|
||||
+2
-2
@@ -17,10 +17,10 @@ import {getChannelIcon} from "@/features/channel/components/channels-helpers";
|
||||
import {NotificationChannelWith} from "@/db/schema/09_notification-channel";
|
||||
import {
|
||||
DefaultNotificationSchema, DefaultNotificationType
|
||||
} from "@/features/settings/notification.schema";
|
||||
} from "@/features/settings/schemas/notification.schema";
|
||||
import {
|
||||
updateNotificationSettingsAction
|
||||
} from "@/features/settings/notification.action";
|
||||
} from "@/features/settings/actions/notification.action";
|
||||
import {toast} from "sonner";
|
||||
import {Badge} from "@/components/ui/badge";
|
||||
|
||||
+4
-4
@@ -4,13 +4,13 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useRouter, useSearchParams } from "next/navigation";
|
||||
import { Setting } from "@/db/schema/01_setting";
|
||||
import { SettingsEmailSection } from "@/features/settings/email-section";
|
||||
import { SettingsStorageSection } from "@/features/settings/storage-section";
|
||||
import { SettingsEmailSection } from "@/features/settings/components/email-section";
|
||||
import { SettingsStorageSection } from "@/features/settings/components/storage-section";
|
||||
import { StorageChannelWith } from "@/db/schema/12_storage-channel";
|
||||
import { AlarmClock, MailboxIcon, Save, UserCircle } from "lucide-react";
|
||||
import { SettingsNotificationSection } from "@/features/settings/notification-section";
|
||||
import { SettingsNotificationSection } from "@/features/settings/components/notification-section";
|
||||
import { NotificationChannelWith } from "@/db/schema/09_notification-channel";
|
||||
import { SettingsAvatarSection } from "@/features/settings/avatar-section";
|
||||
import { SettingsAvatarSection } from "@/features/settings/components/avatar-section";
|
||||
|
||||
export type SettingsTabsProps = {
|
||||
settings: Setting;
|
||||
+2
-2
@@ -8,10 +8,10 @@ import { Button } from "@/components/ui/button";
|
||||
import { useMutation } from "@tanstack/react-query";
|
||||
import { TooltipProvider } from "@/components/ui/tooltip";
|
||||
|
||||
import { S3FormSchema, S3FormType } from "@/features/settings/storage-s3.schema";
|
||||
import { S3FormSchema, S3FormType } from "@/features/settings/schemas/storage-s3.schema";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { toast } from "sonner";
|
||||
import { updateS3SettingsAction } from "@/features/settings/storage-s3.action";
|
||||
import { updateS3SettingsAction } from "@/features/settings/actions/storage-s3.action";
|
||||
import {PasswordInput} from "@/components/ui/password-input";
|
||||
|
||||
export type S3FormProps = {
|
||||
+2
-2
@@ -19,11 +19,11 @@ import {useMutation} from "@tanstack/react-query";
|
||||
import {
|
||||
DefaultStorageSchema,
|
||||
DefaultStorageType
|
||||
} from "@/features/settings/storage.schema";
|
||||
} from "@/features/settings/schemas/storage.schema";
|
||||
import {getChannelIcon} from "@/features/channel/components/channels-helpers";
|
||||
import {
|
||||
updateStorageSettingsAction
|
||||
} from "@/features/settings/storage.action";
|
||||
} from "@/features/settings/actions/storage.action";
|
||||
import {toast} from "sonner";
|
||||
import {Switch} from "@/components/ui/switch";
|
||||
import {downloadMasterKeyAction} from "@/features/agents/actions/keys.action";
|
||||
Reference in New Issue
Block a user