refactor(tool): better new tool logic
This commit is contained in:
		
							parent
							
								
									20282987e3
								
							
						
					
					
						commit
						fb8a3a0fee
					
				| @ -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]}'), | ||||
| }); | ||||
| `,
 | ||||
| ); | ||||
|  | ||||
| @ -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, | ||||
|  | ||||
| @ -9,6 +9,7 @@ export type Tool = { | ||||
|   icon: Component; | ||||
|   redirectFrom?: string[]; | ||||
|   isNew: boolean; | ||||
|   createdAt?: Date; | ||||
| }; | ||||
| 
 | ||||
| export type ToolCategory = { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user