|
1 | 1 | import { useSession } from '@teable/sdk/hooks'; |
2 | 2 | import { Button, Dialog, DialogContent } from '@teable/ui-lib/shadcn'; |
| 3 | +import dayjs from 'dayjs'; |
3 | 4 | import Image from 'next/image'; |
4 | 5 | import { useRouter } from 'next/router'; |
5 | 6 | import { useTranslation } from 'next-i18next'; |
6 | 7 | import { useState } from 'react'; |
7 | 8 | import { useLocalStorage } from 'react-use'; |
8 | 9 | import { useBrand } from '../../hooks/useBrand'; |
9 | 10 | import { useIsCloud } from '../../hooks/useIsCloud'; |
| 11 | +import { useSetting } from '../../hooks/useSetting'; |
10 | 12 |
|
11 | 13 | export const FreshSettingGuideDialog = () => { |
12 | 14 | const isCloud = useIsCloud(); |
13 | 15 | const { |
14 | 16 | user: { isAdmin }, |
15 | 17 | } = useSession(); |
| 18 | + |
| 19 | + const { createdTime } = useSetting(); |
| 20 | + |
16 | 21 | const [freshAdmin, setFreshAdmin] = useLocalStorage('freshAdmin', true); |
17 | | - const showGuideModal = Boolean(freshAdmin && isAdmin && !isCloud); |
| 22 | + const showGuideModal = Boolean( |
| 23 | + freshAdmin && isAdmin && !isCloud && dayjs().isAfter(dayjs(createdTime).add(4, 'hour')) |
| 24 | + ); |
18 | 25 | const [isModalOpen, setIsModalOpen] = useState(showGuideModal); |
19 | 26 | const { t } = useTranslation('common'); |
20 | 27 | const router = useRouter(); |
@@ -54,7 +61,10 @@ export const FreshSettingGuideDialog = () => { |
54 | 61 | </p> |
55 | 62 | </div> |
56 | 63 | <Button |
57 | | - onClick={() => router.push('/admin/setting')} |
| 64 | + onClick={() => { |
| 65 | + router.push('/admin/setting'); |
| 66 | + setFreshAdmin(false); |
| 67 | + }} |
58 | 68 | className="h-[44px] w-[194px] self-center" |
59 | 69 | > |
60 | 70 | {t('admin.action.goToConfiguration')} |
|
0 commit comments