diff --git a/src/langs/fa.json b/src/langs/fa.json index 6e16381..c87b701 100644 --- a/src/langs/fa.json +++ b/src/langs/fa.json @@ -187,7 +187,8 @@ "danak_sujescet": "پیشنهاد داناک", "plans": "پلن ها", "add_plan": "افزودن پلن", - "active_plan": "پلن فعال" + "active_plan": "پلن فعال", + "slider": "نمایش در اسلایدر" }, "plan": { "plans_list": "لیست پلن های ", diff --git a/src/pages/service/List.tsx b/src/pages/service/List.tsx index dbe5b08..5772dfc 100644 --- a/src/pages/service/List.tsx +++ b/src/pages/service/List.tsx @@ -14,6 +14,7 @@ import moment from 'moment-jalaali' import Pagination from '../../components/Pagination' import ToggleStatusService from './components/ToggleStatusService' import CheckBoxComponent from '../../components/CheckBoxComponent' +import ToggleSliderService from './components/ToggleSliderService' const ListService: FC = () => { @@ -109,6 +110,7 @@ const ListService: FC = () => { + @@ -153,6 +155,12 @@ const ListService: FC = () => { status={item.isActive} /> + + + diff --git a/src/pages/service/components/ToggleSliderService.tsx b/src/pages/service/components/ToggleSliderService.tsx new file mode 100644 index 0000000..61d0815 --- /dev/null +++ b/src/pages/service/components/ToggleSliderService.tsx @@ -0,0 +1,28 @@ +import { FC, useState } from 'react' +import { useToggleSliderService } from '../hooks/useServiceData' +import SwitchComponent from '../../../components/Switch' + +type Props = { + id: string, + status: boolean, +} + +const ToggleSliderService: FC = (props: Props) => { + + const [isActive, setIsActive] = useState(props.status) + const toggleStatus = useToggleSliderService() + + const handleChange = (value: boolean) => { + setIsActive(value) + toggleStatus.mutate(props.id) + } + + return ( + + ) +} + +export default ToggleSliderService \ No newline at end of file diff --git a/src/pages/service/hooks/useServiceData.ts b/src/pages/service/hooks/useServiceData.ts index 2301d73..bb83edc 100644 --- a/src/pages/service/hooks/useServiceData.ts +++ b/src/pages/service/hooks/useServiceData.ts @@ -99,6 +99,12 @@ export const useToggleStatusService = () => { }); }; +export const useToggleSliderService = () => { + return useMutation({ + mutationFn: (id: string) => api.toggleSliderService(id), + }); +}; + export const useCreatePlan = () => { return useMutation({ mutationFn: (variables: CreatePlanType) => api.createPlan(variables), diff --git a/src/pages/service/service/ServiceService.ts b/src/pages/service/service/ServiceService.ts index a2cb96f..1aa06b2 100644 --- a/src/pages/service/service/ServiceService.ts +++ b/src/pages/service/service/ServiceService.ts @@ -161,3 +161,8 @@ export const deleteCategory = async (id: string) => { const { data } = await axios.delete(`/danak-services/categories/${id}`); return data; }; + +export const toggleSliderService = async (id: string) => { + const { data } = await axios.post(`/danak-services/toggle-slider/${id}`); + return data; +}; diff --git a/src/pages/service/types/ServiceTypes.ts b/src/pages/service/types/ServiceTypes.ts index ea5324c..ee8d320 100644 --- a/src/pages/service/types/ServiceTypes.ts +++ b/src/pages/service/types/ServiceTypes.ts @@ -54,6 +54,7 @@ export type ServiceItemType = { isActive: boolean; icon: string; subscriptionCount: number; + showInSlider: boolean; }; export type CreateItemPlanType = {