11import React from 'react' ;
2- import type { FC } from 'react' ;
32
43import { ActionTooltip , Button , DropdownMenu } from '@gravity-ui/uikit' ;
54
65import { cn } from '../../../../classname' ;
76import { i18n } from '../../../../i18n/gpt/dialog' ;
8- import { type PromptPreset } from '../ErrorScreen/types' ;
7+ import { CommonAnswer , type PromptPreset } from '../ErrorScreen/types' ;
98import type { GptDialogProps } from '../GptDialog/GptDialog' ;
109import { gptHotKeys } from '../constants' ;
1110import { useGptHotKeys } from '../hooks/useGptHotKeys' ;
1211import { usePresetList } from '../hooks/usePresetList' ;
1312
1413import './Presetlist.scss' ;
1514
16- export type PresetListProps < PromptData extends unknown = unknown > = {
17- disablePromptPresets : GptDialogProps [ 'disablePromptPresets' ] ;
18- promptPresets : GptDialogProps [ 'promptPresets' ] ;
19- onPresetClick : ( data : PromptData ) => void ;
15+ export type PresetListProps <
16+ AnswerData extends CommonAnswer = CommonAnswer ,
17+ PromptData extends unknown = unknown ,
18+ > = {
19+ disablePromptPresets : GptDialogProps < AnswerData , PromptData > [ 'disablePromptPresets' ] ;
20+ promptPresets : GptDialogProps < AnswerData , PromptData > [ 'promptPresets' ] ;
21+ onPresetClick : ( data ?: PromptData ) => void ;
2022} ;
2123
22- type PresetItemType = {
23- preset : PromptPreset < unknown > ;
24- onPresetClick : PresetListProps [ 'onPresetClick' ] ;
24+ type PresetItemType <
25+ AnswerData extends CommonAnswer = CommonAnswer ,
26+ PromptData extends unknown = unknown ,
27+ > = {
28+ preset : PromptPreset < PromptData > ;
29+ onPresetClick : PresetListProps < AnswerData , PromptData > [ 'onPresetClick' ] ;
2530 disablePromptPresets ?: PresetListProps [ 'disablePromptPresets' ] ;
2631 hotKey : string ;
2732} ;
2833
2934export const cnGptDialogPresetList = cn ( 'gpt-dialog-preset-list' ) ;
3035
31- const PresetItem : FC < PresetItemType > = ( { preset, onPresetClick, disablePromptPresets, hotKey} ) => {
36+ const PresetItem = <
37+ AnswerData extends CommonAnswer = CommonAnswer ,
38+ PromptData extends unknown = unknown ,
39+ > ( {
40+ preset,
41+ onPresetClick,
42+ disablePromptPresets,
43+ hotKey,
44+ } : PresetItemType < AnswerData , PromptData > ) => {
3245 useGptHotKeys (
3346 hotKey ,
3447 ( ) => {
@@ -52,13 +65,16 @@ const PresetItem: FC<PresetItemType> = ({preset, onPresetClick, disablePromptPre
5265 ) ;
5366} ;
5467
55- export const PresetList : FC < PresetListProps > = ( {
68+ export const PresetList = <
69+ AnswerData extends CommonAnswer = CommonAnswer ,
70+ PromptData extends unknown = unknown ,
71+ > ( {
5672 disablePromptPresets,
5773 promptPresets,
5874 onPresetClick,
59- } ) => {
75+ } : PresetListProps < AnswerData , PromptData > ) => {
6076 const { presetsContainerRef, visiblePresets, hiddenPresets, showMoreButton, measured} =
61- usePresetList ( {
77+ usePresetList < AnswerData , PromptData > ( {
6278 promptPresets,
6379 onPresetClick,
6480 } ) ;
0 commit comments