mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
refactor(channel): reorganize into components/schemas, nest notifications+storages under components
This commit is contained in:
@@ -4,8 +4,8 @@ import {Metadata} from "next";
|
||||
import {db} from "@/db";
|
||||
import {notificationChannel, NotificationChannelWith} from "@/db/schema/09_notification-channel";
|
||||
import {desc, isNull} from "drizzle-orm";
|
||||
import {ChannelsSection} from "@/features/channel/channels-section";
|
||||
import {ChannelAddEditModal} from "@/features/channel/channel-add-edit-modal";
|
||||
import {ChannelsSection} from "@/features/channel/components/channels-section";
|
||||
import {ChannelAddEditModal} from "@/features/channel/components/channel-add-edit-modal";
|
||||
import * as drizzleDb from "@/db";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import {PageParams} from "@/types/next";
|
||||
import {Page, PageActions, PageContent, PageHeader, PageTitle} from "@/features/layout/page";
|
||||
import {Metadata} from "next";
|
||||
import {ChannelsSection} from "@/features/channel/channels-section";
|
||||
import {ChannelsSection} from "@/features/channel/components/channels-section";
|
||||
import {db} from "@/db";
|
||||
import {desc, eq, isNull} from "drizzle-orm";
|
||||
import * as drizzleDb from "@/db";
|
||||
import {StorageChannelWith} from "@/db/schema/12_storage-channel";
|
||||
import {ChannelAddEditModal} from "@/features/channel/channel-add-edit-modal";
|
||||
import {ChannelAddEditModal} from "@/features/channel/components/channel-add-edit-modal";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Storage Channels",
|
||||
|
||||
+2
-2
@@ -12,8 +12,8 @@ import {useIsMobile} from "@/hooks/use-mobile";
|
||||
import {useEffect, useState} from "react";
|
||||
import {Tabs, TabsContent, TabsList, TabsTrigger} from "@/components/ui/tabs";
|
||||
import {StorageChannelWith} from "@/db/schema/12_storage-channel";
|
||||
import {ChannelForm} from "@/features/channel/channel-form";
|
||||
import {ChannelKind, getChannelTextBasedOnKind} from "@/features/channel/channels-helpers";
|
||||
import {ChannelForm} from "@/features/channel/components/channel-form";
|
||||
import {ChannelKind, getChannelTextBasedOnKind} from "@/features/channel/components/channels-helpers";
|
||||
import {
|
||||
ChannelOrganisationForm
|
||||
} from "@/features/organizations/channels-organization-form";
|
||||
+3
-3
@@ -9,11 +9,11 @@ import {useIsMobile} from "@/hooks/use-mobile";
|
||||
import {StorageChannelWith} from "@/db/schema/12_storage-channel";
|
||||
import {
|
||||
EditChannelButton
|
||||
} from "@/features/channel/channel-edit-button";
|
||||
import {ChannelKind, getChannelIcon} from "@/features/channel/channels-helpers";
|
||||
} from "@/features/channel/components/channel-edit-button";
|
||||
import {ChannelKind, getChannelIcon} from "@/features/channel/components/channels-helpers";
|
||||
import {
|
||||
DeleteChannelButton
|
||||
} from "@/features/channel/channel-delete-button";
|
||||
} from "@/features/channel/components/channel-delete-button";
|
||||
|
||||
export type ChannelCardProps = {
|
||||
data: NotificationChannelWith | StorageChannelWith;
|
||||
+3
-3
@@ -5,12 +5,12 @@ import {useRouter} from "next/navigation";
|
||||
import {Trash2} from "lucide-react";
|
||||
import {
|
||||
removeNotificationChannelAction,
|
||||
} from "@/features/channel/notifications/channel.action";
|
||||
} from "@/features/channel/components/notifications/channel.action";
|
||||
import {toast} from "sonner";
|
||||
import {ChannelKind, getChannelTextBasedOnKind} from "@/features/channel/channels-helpers";
|
||||
import {ChannelKind, getChannelTextBasedOnKind} from "@/features/channel/components/channels-helpers";
|
||||
import {
|
||||
removeStorageChannelAction
|
||||
} from "@/features/channel/storages/channel.action";
|
||||
} from "@/features/channel/components/storages/channel.action";
|
||||
|
||||
export type DeleteChannelButtonProps = {
|
||||
channelId: string;
|
||||
+4
-4
@@ -7,14 +7,14 @@ import {toast} from "sonner";
|
||||
import {useState} from "react";
|
||||
import {OrganizationWithMembers} from "@/db/schema/03_organization";
|
||||
import {StorageChannelWith} from "@/db/schema/12_storage-channel";
|
||||
import {ChannelKind} from "@/features/channel/channels-helpers";
|
||||
import {ChannelKind} from "@/features/channel/components/channels-helpers";
|
||||
import {
|
||||
updateNotificationChannelAction
|
||||
} from "@/features/channel/notifications/channel.action";
|
||||
import {ChannelAddEditModal} from "@/features/channel/channel-add-edit-modal";
|
||||
} from "@/features/channel/components/notifications/channel.action";
|
||||
import {ChannelAddEditModal} from "@/features/channel/components/channel-add-edit-modal";
|
||||
import {
|
||||
updateStorageChannelAction
|
||||
} from "@/features/channel/storages/channel.action";
|
||||
} from "@/features/channel/components/storages/channel.action";
|
||||
|
||||
export type EditChannelButtonProps = {
|
||||
channel: NotificationChannelWith | StorageChannelWith;
|
||||
+7
-7
@@ -8,7 +8,7 @@ import {Input} from "@/components/ui/input";
|
||||
|
||||
import {
|
||||
addStorageChannelAction, updateStorageChannelAction
|
||||
} from "@/features/channel/storages/channel.action";
|
||||
} from "@/features/channel/components/storages/channel.action";
|
||||
import {toast} from "sonner";
|
||||
import {OrganizationWithMembers} from "@/db/schema/03_organization";
|
||||
import {Button} from "@/components/ui/button";
|
||||
@@ -20,19 +20,19 @@ import {ArrowLeft} from "lucide-react";
|
||||
import {StorageChannelWith} from "@/db/schema/12_storage-channel";
|
||||
import {
|
||||
NotificationChannelFormSchema, NotificationChannelFormType, StorageChannelFormSchema, StorageChannelFormType
|
||||
} from "@/features/channel/channel-form.schema";
|
||||
} from "@/features/channel/schemas/channel-form.schema";
|
||||
import {
|
||||
ChannelKind,
|
||||
renderChannelForm
|
||||
} from "@/features/channel/channels-helpers";
|
||||
import {storageProviders} from "@/features/channel/channels-storage-helper";
|
||||
import {notificationProviders} from "@/features/channel/channels-notification-helper";
|
||||
} from "@/features/channel/components/channels-helpers";
|
||||
import {storageProviders} from "@/features/channel/components/channels-storage-helper";
|
||||
import {notificationProviders} from "@/features/channel/components/channels-notification-helper";
|
||||
import {
|
||||
ChannelTestButton
|
||||
} from "@/features/channel/channel-test-button";
|
||||
} from "@/features/channel/components/channel-test-button";
|
||||
import {
|
||||
addNotificationChannelAction, updateNotificationChannelAction
|
||||
} from "@/features/channel/notifications/channel.action";
|
||||
} from "@/features/channel/components/notifications/channel.action";
|
||||
|
||||
|
||||
type NotifierFormProps = {
|
||||
+1
-1
@@ -11,7 +11,7 @@ import {EventPayload} from "@/features/notifications/notifications.types";
|
||||
import {useIsMobile} from "@/hooks/use-mobile";
|
||||
import {cn} from "@/lib/utils";
|
||||
import {StorageChannel} from "@/db/schema/12_storage-channel";
|
||||
import {ChannelKind} from "@/features/channel/channels-helpers";
|
||||
import {ChannelKind} from "@/features/channel/components/channels-helpers";
|
||||
import type {StorageInput} from "@/features/storages/storages.types";
|
||||
import {dispatchStorage} from "@/features/storages/storages.dispatch";
|
||||
|
||||
+15
-15
@@ -1,49 +1,49 @@
|
||||
import {UseFormReturn} from "react-hook-form";
|
||||
import {
|
||||
NotifierSmtpForm
|
||||
} from "@/features/channel/notifications/smtp.form";
|
||||
} from "@/features/channel/components/notifications/smtp.form";
|
||||
import {
|
||||
NotifierSlackForm
|
||||
} from "@/features/channel/notifications/slack.form";
|
||||
} from "@/features/channel/components/notifications/slack.form";
|
||||
import {
|
||||
NotifierDiscordForm
|
||||
} from "@/features/channel/notifications/discord.form";
|
||||
} from "@/features/channel/components/notifications/discord.form";
|
||||
import {
|
||||
NotifierTelegramForm
|
||||
} from "@/features/channel/notifications/telegram.form";
|
||||
} from "@/features/channel/components/notifications/telegram.form";
|
||||
import {
|
||||
NotifierGotifyForm
|
||||
} from "@/features/channel/notifications/gotify.form";
|
||||
} from "@/features/channel/components/notifications/gotify.form";
|
||||
import {
|
||||
NotifierNtfyForm
|
||||
} from "@/features/channel/notifications/ntfy.form";
|
||||
} from "@/features/channel/components/notifications/ntfy.form";
|
||||
import {
|
||||
NotifierWebhookForm
|
||||
} from "@/features/channel/notifications/webhook.form";
|
||||
} from "@/features/channel/components/notifications/webhook.form";
|
||||
import {
|
||||
NotifierNextcloudForm
|
||||
} from "@/features/channel/notifications/nextcloud.form";
|
||||
} from "@/features/channel/components/notifications/nextcloud.form";
|
||||
import {
|
||||
NotifierPushoverForm
|
||||
} from "@/features/channel/notifications/pushover.form";
|
||||
} from "@/features/channel/components/notifications/pushover.form";
|
||||
import {
|
||||
notificationProviders,
|
||||
} from "@/features/channel/channels-notification-helper";
|
||||
} from "@/features/channel/components/channels-notification-helper";
|
||||
import {
|
||||
NotifierTeamsForm
|
||||
} from "@/features/channel/notifications/teams.form";
|
||||
import {storageProviders} from "@/features/channel/channels-storage-helper";
|
||||
} from "@/features/channel/components/notifications/teams.form";
|
||||
import {storageProviders} from "@/features/channel/components/channels-storage-helper";
|
||||
import {ForwardRefExoticComponent, JSX, RefAttributes, SVGProps} from "react";
|
||||
import {LucideProps} from "lucide-react";
|
||||
import {
|
||||
StorageS3Form
|
||||
} from "@/features/channel/storages/s3.form";
|
||||
} from "@/features/channel/components/storages/s3.form";
|
||||
import {
|
||||
StorageGoogleDriveForm
|
||||
} from "@/features/channel/storages/google-drive/google-drive.form";
|
||||
} from "@/features/channel/components/storages/google-drive/google-drive.form";
|
||||
import {
|
||||
StorageBlobForm
|
||||
} from "@/features/channel/storages/az-blob.form";
|
||||
} from "@/features/channel/components/storages/az-blob.form";
|
||||
|
||||
export type ChannelKind = "notification" | "storage";
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import {Mail} from "lucide-react";
|
||||
import type { SVGProps } from 'react';
|
||||
import {ProviderIconTypes} from "@/features/channel/channels-helpers";
|
||||
import {ProviderIconTypes} from "@/features/channel/components/channels-helpers";
|
||||
|
||||
|
||||
|
||||
+3
-3
@@ -5,12 +5,12 @@ import { useState } from "react";
|
||||
import { EmptyStatePlaceholder } from "@/components/common/empty-state-placeholder";
|
||||
import { OrganizationWithMembers } from "@/db/schema/03_organization";
|
||||
import { StorageChannelWith } from "@/db/schema/12_storage-channel";
|
||||
import { ChannelCard } from "@/features/channel/channel-card";
|
||||
import { ChannelAddEditModal } from "@/features/channel/channel-add-edit-modal";
|
||||
import { ChannelCard } from "@/features/channel/components/channel-card";
|
||||
import { ChannelAddEditModal } from "@/features/channel/components/channel-add-edit-modal";
|
||||
import {
|
||||
ChannelKind,
|
||||
getChannelTextBasedOnKind,
|
||||
} from "@/features/channel/channels-helpers";
|
||||
} from "@/features/channel/components/channels-helpers";
|
||||
|
||||
type ChannelsSectionProps = {
|
||||
channels: NotificationChannelWith[] | StorageChannelWith[];
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import {Server} from "lucide-react";
|
||||
import type {SVGProps} from "react";
|
||||
import {ProviderIconTypes} from "@/features/channel/channels-helpers";
|
||||
import {ProviderIconTypes} from "@/features/channel/components/channels-helpers";
|
||||
|
||||
export const storageProviders: ProviderIconTypes[] = [
|
||||
{value: "local", label: "Local", icon: Server},
|
||||
+1
-1
@@ -10,7 +10,7 @@ import {and, eq} from "drizzle-orm";
|
||||
import {withUpdatedAt} from "@/db/utils";
|
||||
import {
|
||||
NotificationChannelFormSchema
|
||||
} from "@/features/channel/channel-form.schema";
|
||||
} from "@/features/channel/schemas/channel-form.schema";
|
||||
|
||||
|
||||
export const addNotificationChannelAction = userAction.schema(
|
||||
+8
-8
@@ -2,14 +2,14 @@
|
||||
import type {ProviderKind, EventPayload, DispatchResult} from '@/features/notifications/notifications.types';
|
||||
import {sendSlack} from './slack';
|
||||
import {sendSmtp} from './smtp';
|
||||
import {sendDiscord} from "@/features/channel/notifications/discord";
|
||||
import {sendTelegram} from "@/features/channel/notifications/telegram";
|
||||
import {sendGotify} from "@/features/channel/notifications/gotify";
|
||||
import {sendNtfy} from "@/features/channel/notifications/ntfy";
|
||||
import {sendWebhook} from "@/features/channel/notifications/webhook";
|
||||
import {sendNextcloud} from "@/features/channel/notifications/nextcloud";
|
||||
import {sendPushover} from "@/features/channel/notifications/pushover";
|
||||
import {sendTeams} from "@/features/channel/notifications/teams"
|
||||
import {sendDiscord} from "@/features/channel/components/notifications/discord";
|
||||
import {sendTelegram} from "@/features/channel/components/notifications/telegram";
|
||||
import {sendGotify} from "@/features/channel/components/notifications/gotify";
|
||||
import {sendNtfy} from "@/features/channel/components/notifications/ntfy";
|
||||
import {sendWebhook} from "@/features/channel/components/notifications/webhook";
|
||||
import {sendNextcloud} from "@/features/channel/components/notifications/nextcloud";
|
||||
import {sendPushover} from "@/features/channel/components/notifications/pushover";
|
||||
import {sendTeams} from "@/features/channel/components/notifications/teams"
|
||||
|
||||
const handlers: Record<
|
||||
ProviderKind,
|
||||
+1
-1
@@ -4,7 +4,7 @@ import {Input} from "@/components/ui/input";
|
||||
import {Separator} from "@/components/ui/separator";
|
||||
import {PasswordInput} from "@/components/ui/password-input";
|
||||
import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue} from "@/components/ui/select";
|
||||
import {PUSHOVER_PRIORITIES} from "@/features/channel/notifications/pushover.schema";
|
||||
import {PUSHOVER_PRIORITIES} from "@/features/channel/components/notifications/pushover.schema";
|
||||
|
||||
type NotifierPushoverFormProps = {
|
||||
form: UseFormReturn<any, any, any>;
|
||||
+1
-1
@@ -9,7 +9,7 @@ import {and, eq} from "drizzle-orm";
|
||||
import {withUpdatedAt} from "@/db/utils";
|
||||
import {
|
||||
StorageChannelFormSchema
|
||||
} from "@/features/channel/channel-form.schema";
|
||||
} from "@/features/channel/schemas/channel-form.schema";
|
||||
import {StorageChannel} from "@/db/schema/12_storage-channel";
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import {Button} from "@/components/ui/button";
|
||||
import {PasswordInput} from "@/components/ui/password-input";
|
||||
import {
|
||||
googleDriveRefreshTokenAction
|
||||
} from "@/features/channel/storages/google-drive/google-drive-refresh.action";
|
||||
} from "@/features/channel/components/storages/google-drive/google-drive-refresh.action";
|
||||
import {toast} from "sonner";
|
||||
|
||||
type StorageGoogleDriveFormProps = {
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
import {drive_v3, google} from "googleapis";
|
||||
import {GoogleDriveConfig} from "@/features/channel/storages/google-drive/types";
|
||||
import {GoogleDriveConfig} from "@/features/channel/components/storages/google-drive/types";
|
||||
import Drive = drive_v3.Drive;
|
||||
import {getServerUrl} from "@/utils/get-server-url";
|
||||
|
||||
+2
-2
@@ -7,12 +7,12 @@ import {
|
||||
StorageResult,
|
||||
StorageUploadInput
|
||||
} from '@/features/storages/storages.types';
|
||||
import {GoogleDriveConfig} from "@/features/channel/storages/google-drive/types";
|
||||
import {GoogleDriveConfig} from "@/features/channel/components/storages/google-drive/types";
|
||||
import {
|
||||
ensureFolderPath,
|
||||
findFileByName,
|
||||
getGoogleDriveClient, resolveFilePath
|
||||
} from "@/features/channel/storages/google-drive/helpers";
|
||||
} from "@/features/channel/components/storages/google-drive/helpers";
|
||||
import {Readable} from "node:stream";
|
||||
import {generateFileUrl} from "@/features/storages/storages.helpers";
|
||||
|
||||
+3
-3
@@ -5,15 +5,15 @@ import {
|
||||
} from '@/features/storages/storages.types';
|
||||
|
||||
import {uploadLocal, getLocal, deleteLocal, pingLocal, copyLocal} from './local';
|
||||
import {copyS3, deleteS3, getS3, pingS3, uploadS3} from "@/features/channel/storages/s3";
|
||||
import {copyBlob, deleteBlob, getBlob, pingBlob, uploadBlob} from "@/features/channel/storages/az-blob";
|
||||
import {copyS3, deleteS3, getS3, pingS3, uploadS3} from "@/features/channel/components/storages/s3";
|
||||
import {copyBlob, deleteBlob, getBlob, pingBlob, uploadBlob} from "@/features/channel/components/storages/az-blob";
|
||||
import {
|
||||
copyGoogleDrive,
|
||||
deleteGoogleDrive,
|
||||
getGoogleDrive,
|
||||
pingGoogleDrive,
|
||||
uploadGoogleDrive
|
||||
} from "@/features/channel/storages/google-drive";
|
||||
} from "@/features/channel/components/storages/google-drive";
|
||||
|
||||
type ProviderHandler = {
|
||||
upload: (config: any, input: StorageInput & { action: 'upload' }) => Promise<StorageResult>;
|
||||
+14
-14
@@ -1,18 +1,18 @@
|
||||
import {z} from "zod";
|
||||
import {SlackChannelConfigSchema} from "@/features/channel/notifications/slack.schema";
|
||||
import {SmtpChannelConfigSchema} from "@/features/channel/notifications/smtp.schema";
|
||||
import {DiscordChannelConfigSchema} from "@/features/channel/notifications/discord.schema";
|
||||
import {TelegramChannelConfigSchema} from "@/features/channel/notifications/telegram.schema";
|
||||
import {GotifyChannelConfigSchema} from "@/features/channel/notifications/gotify.schema";
|
||||
import {NtfyChannelConfigSchema} from "@/features/channel/notifications/ntfy.schema";
|
||||
import {WebhookChannelConfigSchema} from "@/features/channel/notifications/webhook.schema";
|
||||
import {NextcloudChannelConfigSchema} from "@/features/channel/notifications/nextcloud.schema";
|
||||
import {PushoverChannelConfigSchema} from "@/features/channel/notifications/pushover.schema";
|
||||
import {S3ChannelConfigSchema} from "@/features/channel/storages/s3.schema";
|
||||
import {GoogleDriveChannelConfigSchema} from "@/features/channel/storages/google-drive/google-drive.schema";
|
||||
import {LocalChannelConfigSchema} from "@/features/channel/storages/local.schema";
|
||||
import {TeamsChannelConfigSchema} from "@/features/channel/notifications/teams.schema";
|
||||
import {BlobChannelConfigSchema} from "@/features/channel/storages/az-blob.schema";
|
||||
import {SlackChannelConfigSchema} from "@/features/channel/components/notifications/slack.schema";
|
||||
import {SmtpChannelConfigSchema} from "@/features/channel/components/notifications/smtp.schema";
|
||||
import {DiscordChannelConfigSchema} from "@/features/channel/components/notifications/discord.schema";
|
||||
import {TelegramChannelConfigSchema} from "@/features/channel/components/notifications/telegram.schema";
|
||||
import {GotifyChannelConfigSchema} from "@/features/channel/components/notifications/gotify.schema";
|
||||
import {NtfyChannelConfigSchema} from "@/features/channel/components/notifications/ntfy.schema";
|
||||
import {WebhookChannelConfigSchema} from "@/features/channel/components/notifications/webhook.schema";
|
||||
import {NextcloudChannelConfigSchema} from "@/features/channel/components/notifications/nextcloud.schema";
|
||||
import {PushoverChannelConfigSchema} from "@/features/channel/components/notifications/pushover.schema";
|
||||
import {S3ChannelConfigSchema} from "@/features/channel/components/storages/s3.schema";
|
||||
import {GoogleDriveChannelConfigSchema} from "@/features/channel/components/storages/google-drive/google-drive.schema";
|
||||
import {LocalChannelConfigSchema} from "@/features/channel/components/storages/local.schema";
|
||||
import {TeamsChannelConfigSchema} from "@/features/channel/components/notifications/teams.schema";
|
||||
import {BlobChannelConfigSchema} from "@/features/channel/components/storages/az-blob.schema";
|
||||
|
||||
|
||||
const BaseChannelFormSchema = z.object({
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
} from "@/components/ui/form";
|
||||
import { TooltipProvider } from "@/components/ui/tooltip";
|
||||
import { ButtonWithLoading } from "@/components/common/button-with-loading";
|
||||
import { getChannelIcon } from "@/features/channel/channels-helpers";
|
||||
import { getChannelIcon } from "@/features/channel/components/channels-helpers";
|
||||
import {
|
||||
getStatusColor,
|
||||
getStatusIcon,
|
||||
|
||||
@@ -12,7 +12,7 @@ import { MultiSelect } from "@/components/common/multi-select";
|
||||
import { Switch } from "@/components/ui/switch";
|
||||
import { Card } from "@/components/ui/card";
|
||||
import { useIsMobile } from "@/hooks/use-mobile";
|
||||
import { ChannelKind, getChannelIcon, getChannelTextBasedOnKind } from "@/features/channel/channels-helpers";
|
||||
import { ChannelKind, getChannelIcon, getChannelTextBasedOnKind } from "@/features/channel/components/channels-helpers";
|
||||
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, useZodForm } from "@/components/ui/form";
|
||||
import {
|
||||
EVENT_KIND_BACKUP_ONLY_OPTIONS,
|
||||
|
||||
@@ -19,7 +19,7 @@ import Link from "next/link";
|
||||
import { DatabaseWith } from "@/db/schema/07_database";
|
||||
import { NotificationChannel } from "@/db/schema/09_notification-channel";
|
||||
import { StorageChannel } from "@/db/schema/12_storage-channel";
|
||||
import { ChannelKind, getChannelTextBasedOnKind } from "@/features/channel/channels-helpers";
|
||||
import { ChannelKind, getChannelTextBasedOnKind } from "@/features/channel/components/channels-helpers";
|
||||
import { ChannelPoliciesForm } from "@/features/database/channels-policy-form";
|
||||
import { PolicyType } from "@/features/database/channels-policy.schema";
|
||||
import {
|
||||
|
||||
@@ -6,7 +6,7 @@ import {humanReadableDate} from "@/utils/date-formatting";
|
||||
import {CheckCircle2, XCircle} from "lucide-react";
|
||||
import {Badge} from "@/components/ui/badge";
|
||||
import {NotificationLogModal} from "@/features/notifications/notification-log-modal";
|
||||
import {getChannelIcon} from "@/features/channel/channels-helpers";
|
||||
import {getChannelIcon} from "@/features/channel/components/channels-helpers";
|
||||
|
||||
|
||||
export function notificationLogsColumns(): ColumnDef<NotificationLogWithRelations>[] {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import { useMutation } from "@tanstack/react-query";
|
||||
import { useOnboarding } from "@onboardjs/react";
|
||||
import { toast } from "sonner";
|
||||
import { addNotificationChannelAction } from "@/features/channel/notifications/channel.action";
|
||||
import { addNotificationChannelAction } from "@/features/channel/components/notifications/channel.action";
|
||||
import type { OnboardingChannel } from "@/features/onboarding/types";
|
||||
|
||||
type NotifierInput = {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import { useMutation } from "@tanstack/react-query";
|
||||
import { useOnboarding } from "@onboardjs/react";
|
||||
import { toast } from "sonner";
|
||||
import { addStorageChannelAction } from "@/features/channel/storages/channel.action";
|
||||
import { addStorageChannelAction } from "@/features/channel/components/storages/channel.action";
|
||||
import type { OnboardingChannel } from "@/features/onboarding/types";
|
||||
|
||||
type StorageInput = {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import { useMutation } from "@tanstack/react-query";
|
||||
import { useOnboarding } from "@onboardjs/react";
|
||||
import { toast } from "sonner";
|
||||
import { removeNotificationChannelAction } from "@/features/channel/notifications/channel.action";
|
||||
import { removeNotificationChannelAction } from "@/features/channel/components/notifications/channel.action";
|
||||
import type { OnboardingChannel } from "@/features/onboarding/types";
|
||||
|
||||
export const useRemoveNotifier = () => {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import { useMutation } from "@tanstack/react-query";
|
||||
import { useOnboarding } from "@onboardjs/react";
|
||||
import { toast } from "sonner";
|
||||
import { removeStorageChannelAction } from "@/features/channel/storages/channel.action";
|
||||
import { removeStorageChannelAction } from "@/features/channel/components/storages/channel.action";
|
||||
import type { OnboardingChannel } from "@/features/onboarding/types";
|
||||
|
||||
export const useRemoveStorage = () => {
|
||||
|
||||
@@ -17,7 +17,7 @@ import type {
|
||||
OnboardingChannel,
|
||||
OnboardingDefaultsData,
|
||||
} from "@/features/onboarding/types";
|
||||
import { getChannelIcon } from "@/features/channel/channels-helpers";
|
||||
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";
|
||||
|
||||
@@ -14,9 +14,9 @@ import {
|
||||
FormControl,
|
||||
FormMessage,
|
||||
} from "@/components/ui/form";
|
||||
import { notificationProviders } from "@/features/channel/channels-notification-helper";
|
||||
import { renderChannelForm } from "@/features/channel/channels-helpers";
|
||||
import { NotificationChannelFormSchema } from "@/features/channel/channel-form.schema";
|
||||
import { notificationProviders } from "@/features/channel/components/channels-notification-helper";
|
||||
import { renderChannelForm } from "@/features/channel/components/channels-helpers";
|
||||
import { NotificationChannelFormSchema } from "@/features/channel/schemas/channel-form.schema";
|
||||
import { useAddNotifier } from "@/features/onboarding/hooks/use-add-notifier";
|
||||
import { useRemoveNotifier } from "@/features/onboarding/hooks/use-remove-notifier";
|
||||
import type { OnboardingChannel } from "@/features/onboarding/types";
|
||||
|
||||
@@ -14,9 +14,9 @@ import {
|
||||
FormControl,
|
||||
FormMessage,
|
||||
} from "@/components/ui/form";
|
||||
import { storageProviders } from "@/features/channel/channels-storage-helper";
|
||||
import { renderChannelForm } from "@/features/channel/channels-helpers";
|
||||
import { StorageChannelFormSchema } from "@/features/channel/channel-form.schema";
|
||||
import { storageProviders } from "@/features/channel/components/channels-storage-helper";
|
||||
import { renderChannelForm } from "@/features/channel/components/channels-helpers";
|
||||
import { StorageChannelFormSchema } from "@/features/channel/schemas/channel-form.schema";
|
||||
import { useAddStorage } from "@/features/onboarding/hooks/use-add-storage";
|
||||
import { useRemoveStorage } from "@/features/onboarding/hooks/use-remove-storage";
|
||||
import type { OnboardingChannel } from "@/features/onboarding/types";
|
||||
|
||||
@@ -16,7 +16,7 @@ import {
|
||||
import {
|
||||
updateNotificationChannelsOrganizationAction, updateStorageChannelsOrganizationAction
|
||||
} from "@/features/organizations/channels-organization.action";
|
||||
import {ChannelKind} from "@/features/channel/channels-helpers";
|
||||
import {ChannelKind} from "@/features/channel/components/channels-helpers";
|
||||
|
||||
|
||||
type ChannelOrganisationFormProps = {
|
||||
|
||||
@@ -4,8 +4,8 @@ import {CardsWithPagination} from "@/components/common/cards-with-pagination";
|
||||
import {EmptyStatePlaceholder} from "@/components/common/empty-state-placeholder";
|
||||
import {useState} from "react";
|
||||
import {cn} from "@/lib/utils";
|
||||
import {ChannelAddEditModal} from "@/features/channel/channel-add-edit-modal";
|
||||
import {ChannelCard} from "@/features/channel/channel-card";
|
||||
import {ChannelAddEditModal} from "@/features/channel/components/channel-add-edit-modal";
|
||||
import {ChannelCard} from "@/features/channel/components/channel-card";
|
||||
|
||||
export type OrganizationNotifiersTabProps = {
|
||||
organization: OrganizationWithMembers;
|
||||
|
||||
@@ -3,8 +3,8 @@ import {CardsWithPagination} from "@/components/common/cards-with-pagination";
|
||||
import {EmptyStatePlaceholder} from "@/components/common/empty-state-placeholder";
|
||||
import {useState} from "react";
|
||||
import {cn} from "@/lib/utils";
|
||||
import {ChannelAddEditModal} from "@/features/channel/channel-add-edit-modal";
|
||||
import {ChannelCard} from "@/features/channel/channel-card";
|
||||
import {ChannelAddEditModal} from "@/features/channel/components/channel-add-edit-modal";
|
||||
import {ChannelCard} from "@/features/channel/components/channel-card";
|
||||
import {StorageChannel} from "@/db/schema/12_storage-channel";
|
||||
|
||||
export type OrganizationNotifiersTabProps = {
|
||||
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
} from "@/components/ui/form";
|
||||
import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue} from "@/components/ui/select";
|
||||
import {useMutation} from "@tanstack/react-query";
|
||||
import {getChannelIcon} from "@/features/channel/channels-helpers";
|
||||
import {getChannelIcon} from "@/features/channel/components/channels-helpers";
|
||||
import {NotificationChannelWith} from "@/db/schema/09_notification-channel";
|
||||
import {
|
||||
DefaultNotificationSchema, DefaultNotificationType
|
||||
|
||||
@@ -20,7 +20,7 @@ import {
|
||||
DefaultStorageSchema,
|
||||
DefaultStorageType
|
||||
} from "@/features/settings/storage.schema";
|
||||
import {getChannelIcon} from "@/features/channel/channels-helpers";
|
||||
import {getChannelIcon} from "@/features/channel/components/channels-helpers";
|
||||
import {
|
||||
updateStorageSettingsAction
|
||||
} from "@/features/settings/storage.action";
|
||||
|
||||
@@ -10,7 +10,7 @@ import {dispatchViaProvider} from "@/features/channel/storages";
|
||||
import {StorageChannel} from "@/db/schema/12_storage-channel";
|
||||
import {
|
||||
StorageChannelFormType
|
||||
} from "@/features/channel/channel-form.schema";
|
||||
} from "@/features/channel/schemas/channel-form.schema";
|
||||
import { logger } from "@/lib/logger";
|
||||
|
||||
const log = logger.child({ module: "features/storages/dispatch" });
|
||||
|
||||
Reference in New Issue
Block a user