diff options
author | 2023-04-05 23:30:44 +0200 | |
---|---|---|
committer | 2023-04-05 23:30:44 +0200 | |
commit | fb8a3a0fee058bfd9f4ae22a00e6406719e1d06f (patch) | |
tree | 765a512646211ab8487e85bded1758f976c2e33e | |
parent | 20282987e30a04cd1f79fa0a642ab928455eec02 (diff) | |
download | it-tools-fb8a3a0fee058bfd9f4ae22a00e6406719e1d06f.tar.gz it-tools-fb8a3a0fee058bfd9f4ae22a00e6406719e1d06f.tar.zst it-tools-fb8a3a0fee058bfd9f4ae22a00e6406719e1d06f.zip |
refactor(tool): better new tool logic
-rw-r--r-- | scripts/create-tool.mjs | 1 | ||||
-rw-r--r-- | src/tools/tool.ts | 6 | ||||
-rw-r--r-- | src/tools/tools.types.ts | 1 |
3 files changed, 7 insertions, 1 deletions
diff --git a/scripts/create-tool.mjs b/scripts/create-tool.mjs index 33ab807..36a20d8 100644 --- a/scripts/create-tool.mjs +++ b/scripts/create-tool.mjs @@ -55,6 +55,7 @@ export const tool = defineTool({ keywords: ['${toolName.split('-').join("', '")}'], component: () => import('./${toolName}.vue'), icon: ArrowsShuffle, + createdAt: new Date('${new Date().toISOString().split('T')[0]}'), }); `, ); diff --git a/src/tools/tool.ts b/src/tools/tool.ts index 8289aa3..a5d157e 100644 --- a/src/tools/tool.ts +++ b/src/tools/tool.ts @@ -1,4 +1,5 @@ import { config } from '@/config'; +import { isAfter, subWeeks } from 'date-fns'; import type { Tool } from './tools.types'; type WithOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>; @@ -7,7 +8,10 @@ export function defineTool( tool: WithOptional<Tool, 'isNew'>, { newTools }: { newTools: string[] } = { newTools: config.tools.newTools }, ) { - const isNew = newTools.includes(tool.name); + const isInNewToolConfig = newTools.includes(tool.name); + const isRecentTool = tool.createdAt ? isAfter(tool.createdAt, subWeeks(new Date(), 2)) : false; + + const isNew = isInNewToolConfig || isRecentTool; return { isNew, diff --git a/src/tools/tools.types.ts b/src/tools/tools.types.ts index 5630a12..48f6062 100644 --- a/src/tools/tools.types.ts +++ b/src/tools/tools.types.ts @@ -9,6 +9,7 @@ export type Tool = { icon: Component; redirectFrom?: string[]; isNew: boolean; + createdAt?: Date; }; export type ToolCategory = { |