| 1 |
"use strict";(globalThis.webpackChunkbooktics=globalThis.webpackChunkbooktics||[]).push([[787],{55787:(e,t,a)=>{a.r(t),a.d(t,{default:()=>v});var o=a(51609),c=a(86087),r=a(47143),n=a(47767),i=a(22564),l=a(90803),s=a(40309),d=a(88802),g=a(46714);const{__}=wp?.i18n||{},{DeleteOutlined:y}=window?.booktics?.libraryIcons||{},u=({record:e})=>{const{deleteCategory:t,duplicateCategory:a}=(0,l.A)(),r=(0,c.useCallback)(async()=>{await a(e.id)},[a,e.id]),n=(0,c.useCallback)(()=>{window.wp?.hooks?.doAction("delete_confirmation",{title:__("Are you sure you want to delete the service","booktics"),onOk:()=>t(e.id)})},[t,e.id]),s=(0,c.useMemo)(()=>[{key:"clone",label:(0,o.createElement)(i.Flex,{gap:6},(0,o.createElement)(g.CopyIcon,null)," ",__("Clone","booktics")),onClick:r},{key:"delete",danger:!0,label:(0,o.createElement)(i.Flex,{gap:6},(0,o.createElement)(y,null)," ",__("Delete","booktics")),onClick:n}],[r,n]);return(0,o.createElement)(i.Dropdown,{menu:{items:s},placement:"bottomRight",arrow:!1,trigger:"hover"},(0,o.createElement)(i.IconButton,{icon:(0,o.createElement)(g.ThreeDotIcon,null)}))},p=({record:e})=>{const t=(0,n.Zp)();return(0,o.createElement)(i.Flex,{gap:8},(0,o.createElement)(i.IconButton,{icon:(0,o.createElement)(g.EditIcon,null),onClick:()=>t(`/category/update/${e.id}`)}),(0,o.createElement)(u,{record:e}))},{__:m}=wp?.i18n||{},k=[{title:m("Categories","booktics"),dataIndex:"name",key:"name",fixed:"left",render:(e,t)=>(0,o.createElement)(i.Title,{level:5,text:t.name})},{title:m("Service","booktics"),dataIndex:"service",key:"service",render:(e,t)=>(0,o.createElement)("span",null,t?.services?.length)},{title:m("Description","booktics"),dataIndex:"description",key:"description",render:(e,t)=>(0,o.createElement)(i.Description,{text:t.description})},{title:m("Action","booktics"),dataIndex:"action",key:"action",width:"150px",fixed:"right",render:(e,t)=>(0,o.createElement)(p,{record:t})}];var C=a(4581);const{__:w}=wp?.i18n||{},{PlusOutlined:h}=window?.booktics?.libraryIcons||{},E=({selectedRowKeys:e,setSelectedRowKeys:t})=>{const a=(0,n.Zp)(),{getCategories:c,categoryBulkDelete:r}=(0,l.A)();return(0,o.createElement)(i.SecondaryMenu,{selectedView:"table",filteredTopMenu:(0,o.createElement)(o.Fragment,null,e.length?(0,o.createElement)(i.BulkDelete,{selectedRowKeys:e,setSelectedRowKeys:t,deleteApi:r}):(0,o.createElement)("div",null,(0,o.createElement)(C.A,{searchFunc:c})),(0,o.createElement)(i.PrimaryButton,{text:w("New Category","booktics"),icon:(0,o.createElement)(h,null),onClick:()=>a("/category/create")}))})},{__:b}=wp?.i18n||{},v=()=>{const e=(0,n.Zp)(),[t,a]=(0,c.useState)([]),{getCategories:g}=(0,l.A)(),{categoryList:y,searchQuery:u,total:p}=(0,r.useSelect)(e=>e(s.category).getCategoryState(),[]),m={selectedRowKeys:t,onChange:e=>a(e)};return(0,c.useEffect)(()=>{y||g()},[]),y?0===y.length?(0,o.createElement)(i.EmptyScreen,{addButtonText:b("Add Category","booktics"),onAddButtonClick:()=>e("/category/create")}):(0,o.createElement)(o.Fragment,null,(0,o.createElement)(E,{selectedRowKeys:t,setSelectedRowKeys:a}),(0,o.createElement)(i.Table,{total:p,current:u.paged,pageSize:u.per_paged||p,dataSource:y,pageSizeOptions:d.pagination.pageSizeOptions,columns:k,scroll:{x:1e3},rowSelection:m,onPaginationChange:(e,t)=>{g({paged:e,per_page:t})}})):(0,o.createElement)(i.RowSkeleton,null)}},90803:(e,t,a)=>{a.d(t,{A:()=>i});var o=a(47143),c=a(47767),r=a(93906),n=a(40309);const i=()=>{const{setCategoryState:e}=(0,o.useDispatch)(n?.category),{id:t}=(0,c.g)(),a=(0,c.Zp)(),{categoryList:i=[],categoryIds:l,total:s,selectedServices:d,searchQuery:g}=(0,o.useSelect)(n?.category).getCategoryState();return{getCategories:async(t={})=>{t?.resetFilter&&(t={search:"",paged:"",per_page:""});const a={...g,...t};try{const t=await r.A.category.allCategories(a);t.success&&e({categoryList:t?.data?.items,total:t?.data?.total,searchQuery:a})}catch(e){console.error("Error fetching services:",e)}finally{return e({isFiltering:!1}),{complete:!0}}},addCategory:async(t,o=!0)=>{const c={...t,services:d};try{e({editLoading:!0});const t=await r.A.category.createCategory(c);t.success&&e({categoryList:[t?.data,...i],total:s+1,visibleModal:!1,categoryIds:[...l,t.data.id]}),e({editLoading:!1,visibleModal:!1}),o&&a("/services/category")}catch(t){console.log(t),e({editLoading:!1,visibleModal:!1})}finally{e({editLoading:!1,visibleModal:!1})}},getSingleCategory:async()=>{try{const a=await r.A.category.singleCategory(t);a.success&&e({singleCategory:{...a?.data}})}catch(e){console.log(e)}},editCategory:async o=>{const c={...o,services:d};try{e({editLoading:!0});const o=await r.A.category.updateCategory(t,c);if(o.success){const t=i?.map(e=>e?.id===o?.data?.id?o?.data:e);e({categoryList:t}),a("/services/category")}e({editLoading:!1})}catch(t){console.log(t),e({editLoading:!1})}finally{e({editLoading:!1})}},categoryBulkDelete:async(t=[])=>{try{if((await r.A.category.bulkDeleteCategory({ids:t})).success){const a=i.filter(e=>!t.includes(e.id));e({categoryList:a})}}catch(e){console.log(e)}},duplicateCategory:async t=>{try{e({isFiltering:!0});const a=await(r.A?.category?.cloneCategory(t));if(a?.success){const o=[...i],c=o.findIndex(e=>e.id===t);-1!==c?o.splice(c+1,0,a.data):o.push(a.data),e({categoryList:o,total:o.length})}}catch(e){console.error("Error duplicating category:",e)}finally{e({isFiltering:!1})}},deleteCategory:async t=>{try{if((await r.A.category.deleteSingleCategory(t)).success){const a=i.filter(e=>e.id!==t);e({categoryList:a,total:s-1})}}catch(e){console.log(e)}}}}}}]); |