feat: support disable storage module
This commit is contained in:
parent
c5dfaafe61
commit
debbb5abf5
@ -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>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -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>('');
|
||||||
|
@ -86,6 +86,7 @@ export const websiteConfig: WebsiteConfig = {
|
|||||||
autoSubscribeAfterSignUp: true,
|
autoSubscribeAfterSignUp: true,
|
||||||
},
|
},
|
||||||
storage: {
|
storage: {
|
||||||
|
enable: true,
|
||||||
provider: 's3',
|
provider: 's3',
|
||||||
},
|
},
|
||||||
payment: {
|
payment: {
|
||||||
|
1
src/types/index.d.ts
vendored
1
src/types/index.d.ts
vendored
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user