feat: support disable storage module

This commit is contained in:
javayhu 2025-08-15 22:51:48 +08:00
parent c5dfaafe61
commit debbb5abf5
4 changed files with 14 additions and 8 deletions

View File

@ -1,20 +1,15 @@
import { UpdateAvatarCard } from '@/components/settings/profile/update-avatar-card'; import { UpdateAvatarCard } from '@/components/settings/profile/update-avatar-card';
import { UpdateNameCard } from '@/components/settings/profile/update-name-card'; import { UpdateNameCard } from '@/components/settings/profile/update-name-card';
import { websiteConfig } from '@/config/website';
export default function ProfilePage() { export default function ProfilePage() {
const enableUpdateAvatar = websiteConfig.features.enableUpdateAvatar;
return ( return (
<div className="flex flex-col gap-8"> <div className="flex flex-col gap-8">
{enableUpdateAvatar && (
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
<UpdateAvatarCard />
</div>
)}
<div className="grid grid-cols-1 md:grid-cols-2 gap-8"> <div className="grid grid-cols-1 md:grid-cols-2 gap-8">
<UpdateNameCard /> <UpdateNameCard />
</div> </div>
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
<UpdateAvatarCard />
</div>
</div> </div>
); );
} }

View File

@ -11,6 +11,7 @@ import {
CardHeader, CardHeader,
CardTitle, CardTitle,
} from '@/components/ui/card'; } from '@/components/ui/card';
import { websiteConfig } from '@/config/website';
import { authClient } from '@/lib/auth-client'; import { authClient } from '@/lib/auth-client';
import { cn } from '@/lib/utils'; import { cn } from '@/lib/utils';
import { uploadFileFromBrowser } from '@/storage/client'; import { uploadFileFromBrowser } from '@/storage/client';
@ -27,6 +28,14 @@ interface UpdateAvatarCardProps {
* Update the user's avatar * Update the user's avatar
*/ */
export function UpdateAvatarCard({ className }: UpdateAvatarCardProps) { export function UpdateAvatarCard({ className }: UpdateAvatarCardProps) {
// show nothing if storage is disabled or update avatar is disabled
if (
!websiteConfig.storage.enable ||
!websiteConfig.features.enableUpdateAvatar
) {
return null;
}
const t = useTranslations('Dashboard.settings.profile'); const t = useTranslations('Dashboard.settings.profile');
const [isUploading, setIsUploading] = useState(false); const [isUploading, setIsUploading] = useState(false);
const [error, setError] = useState<string | undefined>(''); const [error, setError] = useState<string | undefined>('');

View File

@ -86,6 +86,7 @@ export const websiteConfig: WebsiteConfig = {
autoSubscribeAfterSignUp: true, autoSubscribeAfterSignUp: true,
}, },
storage: { storage: {
enable: true,
provider: 's3', provider: 's3',
}, },
payment: { payment: {

View File

@ -146,6 +146,7 @@ export interface NewsletterConfig {
* Storage configuration * Storage configuration
*/ */
export interface StorageConfig { export interface StorageConfig {
enable: boolean; // Whether to enable the storage
provider: 's3'; // The storage provider, only s3 is supported for now provider: 's3'; // The storage provider, only s3 is supported for now
} }