This commit is contained in:
hamid zarghami
2025-05-04 14:47:32 +03:30
parent 406043be1e
commit db0be2d4d7
7 changed files with 30 additions and 4 deletions
+2 -1
View File
@@ -205,7 +205,8 @@
"plans": "پلن ها", "plans": "پلن ها",
"add_plan": "افزودن پلن", "add_plan": "افزودن پلن",
"active_plan": "پلن فعال", "active_plan": "پلن فعال",
"slider": "نمایش در اسلایدر" "slider": "نمایش در اسلایدر",
"slug": "اسلاگ"
}, },
"plan": { "plan": {
"plans_list": "لیست پلن های ", "plans_list": "لیست پلن های ",
+3 -1
View File
@@ -65,7 +65,8 @@ const AddService: FC = () => {
serviceLanguage: '', serviceLanguage: '',
softwareLanguage: '', softwareLanguage: '',
userCount: 0, userCount: 0,
createDate: '' createDate: '',
slug: ''
}, },
validationSchema: Yup.object({ validationSchema: Yup.object({
name: Yup.string().required(t('errors.required')), name: Yup.string().required(t('errors.required')),
@@ -77,6 +78,7 @@ const AddService: FC = () => {
serviceLanguage: Yup.string().required(t('errors.required')), serviceLanguage: Yup.string().required(t('errors.required')),
metaDescription: Yup.string().required(t('errors.required')), metaDescription: Yup.string().required(t('errors.required')),
link: Yup.string().required(t('errors.required')), link: Yup.string().required(t('errors.required')),
slug: Yup.string().required(t('errors.required')),
}), }),
onSubmit: async (values) => { onSubmit: async (values) => {
if (iconFile && imagesFile) { if (iconFile && imagesFile) {
+2
View File
@@ -105,6 +105,7 @@ const ListService: FC = () => {
<tr> <tr>
<Td text='' /> <Td text='' />
<Td text={t('service.title')} /> <Td text={t('service.title')} />
<Td text={t('service.slug')} />
<Td text={t('service.company_developed')} /> <Td text={t('service.company_developed')} />
<Td text={t('service.category')} /> <Td text={t('service.category')} />
<Td text={t('service.publish_date')} /> <Td text={t('service.publish_date')} />
@@ -126,6 +127,7 @@ const ListService: FC = () => {
</div> </div>
</Td> </Td>
<Td text={item.name} /> <Td text={item.name} />
<Td text={item.slug} />
<Td text={item.author} /> <Td text={item.author} />
<Td text={item.category?.title} /> <Td text={item.category?.title} />
<Td text={moment(item.createDate, 'jYYYY-jMM-jDD').format('jYYYY-jMM-jDD')} /> <Td text={moment(item.createDate, 'jYYYY-jMM-jDD').format('jYYYY-jMM-jDD')} />
+5 -2
View File
@@ -69,7 +69,8 @@ const UpdateService: FC = () => {
softwareLanguage: '', softwareLanguage: '',
userCount: 0, userCount: 0,
createDate: '', createDate: '',
coverUrl: '' coverUrl: '',
slug: ''
}, },
validationSchema: Yup.object({ validationSchema: Yup.object({
name: Yup.string().required(t('errors.required')), name: Yup.string().required(t('errors.required')),
@@ -81,6 +82,7 @@ const UpdateService: FC = () => {
serviceLanguage: Yup.string().required(t('errors.required')), serviceLanguage: Yup.string().required(t('errors.required')),
metaDescription: Yup.string().required(t('errors.required')), metaDescription: Yup.string().required(t('errors.required')),
link: Yup.string().required(t('errors.required')), link: Yup.string().required(t('errors.required')),
slug: Yup.string().required(t('errors.required')),
}), }),
onSubmit: async (values) => { onSubmit: async (values) => {
@@ -152,7 +154,8 @@ const UpdateService: FC = () => {
softwareLanguage: data?.softwareLanguage, softwareLanguage: data?.softwareLanguage,
userCount: data?.userCount || 0, userCount: data?.userCount || 0,
createDate: moment(data?.createDate).format('YYYY-MM-DD'), createDate: moment(data?.createDate).format('YYYY-MM-DD'),
coverUrl: data?.coverUrl coverUrl: data?.coverUrl,
slug: data?.slug
}); });
const editorElement = editorRef.current?.querySelector('.ql-editor'); const editorElement = editorRef.current?.querySelector('.ql-editor');
if (editorElement) { if (editorElement) {
@@ -51,6 +51,14 @@ const AddServiceSidebar: FC<Props> = (props: Props) => {
/> />
</div> </div>
<div className='mt-8'>
<Input
label={t('service.slug')}
{...formik.getFieldProps('slug')}
error_text={formik.touched.slug && formik.errors.slug ? formik.errors.slug : ''}
/>
</div>
<div className='mt-8'> <div className='mt-8'>
<div>{t('service.category')}</div> <div>{t('service.category')}</div>
<div className='mt-2 border border-border rounded-xl p-4'> <div className='mt-2 border border-border rounded-xl p-4'>
@@ -54,6 +54,14 @@ const UpdateServiceSidebar: FC<Props> = (props: Props) => {
/> />
</div> </div>
<div className='mt-8'>
<Input
label={t('service.slug')}
{...formik.getFieldProps('slug')}
error_text={formik.touched.slug && formik.errors.slug ? formik.errors.slug : ''}
/>
</div>
<div className='mt-8'> <div className='mt-8'>
<div>{t('service.category')}</div> <div>{t('service.category')}</div>
<div className='mt-2 border border-border rounded-xl p-4'> <div className='mt-2 border border-border rounded-xl p-4'>
+2
View File
@@ -44,6 +44,7 @@ export type CreateServiceType = {
images?: string[]; images?: string[];
createDate: string; createDate: string;
coverUrl?: string; coverUrl?: string;
slug: string;
}; };
export type ServiceItemType = { export type ServiceItemType = {
@@ -56,6 +57,7 @@ export type ServiceItemType = {
icon: string; icon: string;
subscriptionCount: number; subscriptionCount: number;
showInSlider: boolean; showInSlider: boolean;
slug: string;
}; };
export type CreateItemPlanType = { export type CreateItemPlanType = {