Skip to content

Commit 12c2509

Browse files
chore: add Version control for version field
1 parent 9244b3c commit 12c2509

File tree

3 files changed

+43
-27
lines changed

3 files changed

+43
-27
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { FC } from 'react';
2+
3+
import { EntityFieldsI18nKey, EntityPlaceholdersI18nKey } from '@/src/constants/i18n';
4+
import { useI18n } from '@/src/locales/client';
5+
import { TextInputField } from '@/src/components/Common/InputField/InputField';
6+
7+
interface Props {
8+
version?: string;
9+
readonly?: boolean;
10+
disabled?: boolean;
11+
onChange?: (version: string) => void;
12+
}
13+
14+
const VersionControl: FC<Props> = ({ version, ...props }) => {
15+
const t = useI18n() as (t: string) => string;
16+
17+
return (
18+
<TextInputField
19+
elementId="displayVersion"
20+
fieldTitle={t(EntityFieldsI18nKey.displayVersion)}
21+
placeholder={t(EntityPlaceholdersI18nKey.Version)}
22+
value={version}
23+
{...props}
24+
/>
25+
);
26+
};
27+
28+
export default VersionControl;

apps/ai-dial-admin/src/components/PromptView/Modals/DuplicatePrompt.tsx

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
import { FC, useCallback, useEffect, useState } from 'react';
22

33
import Button from '@/src/components/Common/Button/Button';
4-
import { TextInputField } from '@/src/components/Common/InputField/InputField';
4+
import FilePath from '@/src/components/Common/FilePath/FilePath';
5+
import Popup from '@/src/components/Common/Popup/Popup';
6+
import RadioField from '@/src/components/Common/RadioField/RadioField';
7+
import DisplayNameControl from '@/src/components/EntityMainProperties/BaseProperties/DisplayName';
8+
import VersionControl from '@/src/components/EntityMainProperties/BaseProperties/Version';
59
import {
610
BasicI18nKey,
711
ButtonsI18nKey,
812
DuplicateI18nKey,
9-
EntityFieldsI18nKey,
1013
EntityPlaceholdersI18nKey,
1114
FoldersI18nKey,
1215
PromptsI18nKey,
1316
} from '@/src/constants/i18n';
17+
import { usePromptFolder } from '@/src/context/PromptFolderContext';
1418
import { useI18n } from '@/src/locales/client';
15-
import { PopUpState } from '@/src/types/pop-up';
1619
import { DialPrompt } from '@/src/models/dial/prompt';
17-
import { checkNameVersionCombination, getInitialVersion } from '@/src/utils/prompts/versions';
1820
import { RadioButtonModel } from '@/src/models/radio-button';
19-
import { RadioFieldOrientation } from '@/src/types/radio-orientation';
21+
import { PopUpState } from '@/src/types/pop-up';
2022
import { DuplicationTypes } from '@/src/types/prompt';
21-
import Popup from '@/src/components/Common/Popup/Popup';
22-
import RadioField from '@/src/components/Common/RadioField/RadioField';
23-
import FilePath from '@/src/components/Common/FilePath/FilePath';
24-
import { usePromptFolder } from '@/src/context/PromptFolderContext';
23+
import { RadioFieldOrientation } from '@/src/types/radio-orientation';
24+
import { checkNameVersionCombination, getInitialVersion } from '@/src/utils/prompts/versions';
2525

2626
interface Props {
2727
modalState: PopUpState;
@@ -100,21 +100,13 @@ const DuplicatePrompt: FC<Props> = ({ modalState, entity, versionsMap, onDuplica
100100
orientation={RadioFieldOrientation.Column}
101101
onChange={onChangeDuplicationType}
102102
/>
103-
<TextInputField
104-
fieldTitle={t(EntityFieldsI18nKey.displayName)}
105-
placeholder={t(EntityPlaceholdersI18nKey.DisplayName)}
106-
elementId="name"
107-
value={clonedPrompt.name}
103+
<DisplayNameControl
104+
displayName={clonedPrompt.name}
108105
onChange={onChangeName}
109106
disabled={duplicationType === DuplicationTypes.VERSION}
110107
/>
111-
<TextInputField
112-
fieldTitle={t(EntityFieldsI18nKey.displayVersion)}
113-
placeholder={t(EntityPlaceholdersI18nKey.Version)}
114-
elementId="version"
115-
value={clonedPrompt.version}
116-
onChange={onChangeVersion}
117-
/>
108+
<VersionControl version={clonedPrompt.version} onChange={onChangeVersion} />
109+
118110
{duplicationType === DuplicationTypes.PROMPT && (
119111
<FilePath
120112
value={clonedPrompt.folderId}

apps/ai-dial-admin/src/components/PromptView/PromptProperties.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import { ApplicationRoute } from '@/src/types/routes';
3232
import { formatDateTimeToLocalString } from '@/src/utils/formatting/date';
3333
import { modifyNameVersionInPrompt } from '@/src/utils/prompts/versions';
3434
import DescriptionControl from '@/src/components/EntityMainProperties/BaseProperties/Description';
35+
import VersionControl from '@/src/components/EntityMainProperties/BaseProperties/Version';
3536

3637
interface Props {
3738
prompt: DialPrompt;
@@ -185,12 +186,7 @@ const PromptProperties: FC<Props> = ({
185186
<div className="flex flex-col gap-6 pr-6">
186187
<div className="w-[105px]">
187188
{isImmutable ? (
188-
<TextInputField
189-
elementId="version"
190-
fieldTitle={t(EntityFieldsI18nKey.displayVersion)}
191-
value={prompt.version}
192-
disabled={isImmutable}
193-
/>
189+
<VersionControl version={prompt.version} disabled={isImmutable} />
194190
) : (
195191
<DropdownField
196192
elementCssClass="lg:w-[35%]"

0 commit comments

Comments
 (0)