@solidxai/core-ui 0.1.12 → 0.1.13-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/adapters/auth/sessionInvalidation.d.ts +3 -0
  2. package/dist/adapters/auth/sessionInvalidation.d.ts.map +1 -0
  3. package/dist/adapters/auth/sessionInvalidation.js +70 -0
  4. package/dist/adapters/auth/sessionInvalidation.js.map +1 -0
  5. package/dist/adapters/auth/sessionInvalidation.ts +22 -0
  6. package/dist/adapters/auth/signOut.d.ts.map +1 -1
  7. package/dist/adapters/auth/signOut.js +0 -2
  8. package/dist/adapters/auth/signOut.js.map +1 -1
  9. package/dist/adapters/auth/signOut.ts +0 -2
  10. package/dist/components/core/card/CardGrid.d.ts +1 -1
  11. package/dist/components/core/card/CardGrid.d.ts.map +1 -1
  12. package/dist/components/core/card/CardGrid.js +2 -2
  13. package/dist/components/core/card/CardGrid.js.map +1 -1
  14. package/dist/components/core/card/CardGrid.tsx +2 -0
  15. package/dist/components/core/card/CardItem.d.ts +1 -0
  16. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  17. package/dist/components/core/card/CardItem.js +2 -2
  18. package/dist/components/core/card/CardItem.js.map +1 -1
  19. package/dist/components/core/card/CardItem.tsx +11 -0
  20. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  21. package/dist/components/core/card/SolidCardView.js +82 -30
  22. package/dist/components/core/card/SolidCardView.js.map +1 -1
  23. package/dist/components/core/card/SolidCardView.tsx +68 -7
  24. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
  25. package/dist/components/core/chatter/SolidMessageComposer.js +4 -14
  26. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  27. package/dist/components/core/chatter/SolidMessageComposer.tsx +4 -15
  28. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  29. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +2 -1
  30. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  31. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +3 -1
  32. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
  33. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +2 -1
  34. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
  35. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +2 -1
  36. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +32 -2
  37. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
  38. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +1 -1
  39. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  40. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +3 -1
  41. package/dist/components/core/common/SolidGlobalSearchElement.js +1 -1
  42. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  43. package/dist/components/core/common/SolidGlobalSearchElement.tsx +1 -1
  44. package/dist/components/core/common/globalSearchPersistence.d.ts +7 -0
  45. package/dist/components/core/common/globalSearchPersistence.d.ts.map +1 -0
  46. package/dist/components/core/common/globalSearchPersistence.js +89 -0
  47. package/dist/components/core/common/globalSearchPersistence.js.map +1 -0
  48. package/dist/components/core/common/globalSearchPersistence.ts +88 -0
  49. package/dist/components/core/form/SolidFormFooter.js +1 -1
  50. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  51. package/dist/components/core/form/SolidFormFooter.tsx +1 -1
  52. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  53. package/dist/components/core/form/fields/SolidMediaMultipleField.js +6 -8
  54. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  55. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +36 -55
  56. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  57. package/dist/components/core/kanban/SolidKanbanView.js +2 -2
  58. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  59. package/dist/components/core/kanban/SolidKanbanView.tsx +3 -2
  60. package/dist/components/core/list/SolidCustomListViewColumn.d.ts +8 -0
  61. package/dist/components/core/list/SolidCustomListViewColumn.d.ts.map +1 -0
  62. package/dist/components/core/list/SolidCustomListViewColumn.js +47 -0
  63. package/dist/components/core/list/SolidCustomListViewColumn.js.map +1 -0
  64. package/dist/components/core/list/SolidCustomListViewColumn.tsx +57 -0
  65. package/dist/components/core/list/SolidListView.d.ts +0 -6
  66. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  67. package/dist/components/core/list/SolidListView.js +12 -89
  68. package/dist/components/core/list/SolidListView.js.map +1 -1
  69. package/dist/components/core/list/SolidListView.tsx +17 -95
  70. package/dist/components/core/model/CreateModel.css +1 -0
  71. package/dist/components/core/module/CreateModule.css +1 -0
  72. package/dist/components/core/module/CreateModule.js +1 -1
  73. package/dist/components/core/module/CreateModule.js.map +1 -1
  74. package/dist/components/core/module/CreateModule.tsx +1 -1
  75. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  76. package/dist/components/core/tree/SolidTreeView.js +135 -41
  77. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  78. package/dist/components/core/tree/SolidTreeView.tsx +96 -34
  79. package/dist/constants/error-messages.d.ts +1 -0
  80. package/dist/constants/error-messages.d.ts.map +1 -1
  81. package/dist/constants/error-messages.js +1 -0
  82. package/dist/constants/error-messages.js.map +1 -1
  83. package/dist/constants/error-messages.ts +2 -0
  84. package/dist/http/solidHttp.d.ts.map +1 -1
  85. package/dist/http/solidHttp.js +28 -16
  86. package/dist/http/solidHttp.js.map +1 -1
  87. package/dist/http/solidHttp.ts +7 -1
  88. package/dist/redux/api/fetchBaseQuery.d.ts.map +1 -1
  89. package/dist/redux/api/fetchBaseQuery.js +25 -19
  90. package/dist/redux/api/fetchBaseQuery.js.map +1 -1
  91. package/dist/redux/api/fetchBaseQuery.tsx +5 -0
  92. package/dist/redux/api/solidChatterMessageApi.d.ts +2 -2
  93. package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
  94. package/dist/redux/api/solidChatterMessageApi.js +3 -3
  95. package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
  96. package/dist/redux/api/solidChatterMessageApi.ts +3 -3
  97. package/dist/redux/store/defaultStoreConfig.d.ts +1 -1
  98. package/dist/resources/solid-custom.css +5 -1
  99. package/dist/routes/pages/admin/core/DashboardPage.module.css +4 -0
  100. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SolidCardView.js","sourceRoot":"","sources":["../../../../src/components/core/card/SolidCardView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport qs from \"qs\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport { SolidEmptyListViewPlaceholder } from \"../list/SolidEmptyListViewPlaceholder\";\nimport { getFilterObjectFromLocalStorage, hasStoredFilterPredicates, setFilterObjectToLocalStorage } from \"../list/SolidListView\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { SolidCardViewConfigure } from \"./SolidCardViewConfigure\";\nimport { CardGrid } from \"./CardGrid\";\nimport { CardUserViewLayout } from \"./CardUserViewLayout\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n SolidSelect,\n} from \"../../shad-cn-ui\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\n\ntype SolidCardViewParams = {\n moduleName: string;\n modelName: string;\n embeded: boolean;\n};\n\nconst deriveCardViewConfig = (solidCardViewMetaData: any) => {\n const solidView = solidCardViewMetaData?.data?.solidView;\n const solidFieldsMetadata = solidCardViewMetaData?.data?.solidFieldsMetadata || {};\n const layoutAttrs = solidView?.layout?.attrs || {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n\n const findCardNode = (nodes: any[] = []): any => {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n };\n\n const extractFields = (nodes: any, result: any[] = []) => {\n if (!nodes) return result;\n\n if (Array.isArray(nodes)) {\n nodes.forEach((node: any) => extractFields(node, result));\n return result;\n }\n\n if (nodes.type === \"field\") {\n result.push(nodes);\n }\n if (Array.isArray(nodes.children)) {\n nodes.children.forEach((child: any) => extractFields(child, result));\n }\n return result;\n };\n\n const cardNode = findCardNode(solidView?.layout?.children || []);\n const fieldSource = cardNode?.children?.length ? cardNode.children : solidView?.layout?.children || [];\n const layoutFields = extractFields(fieldSource);\n layoutFields.forEach((column: any) => {\n const fieldMetadata = solidFieldsMetadata[column?.attrs?.name];\n if (!fieldMetadata) return;\n\n if (fieldMetadata.type === \"relation\") {\n toPopulate.push(fieldMetadata.name);\n }\n if (fieldMetadata.type === \"mediaSingle\" || fieldMetadata.type === \"mediaMultiple\") {\n toPopulateMedia.push(fieldMetadata.name);\n }\n });\n\n return {\n rows: layoutAttrs.pageSize || 24,\n pageSizeOptions: layoutAttrs.pageSizeOptions || [12, 24, 48],\n toPopulate,\n toPopulateMedia,\n };\n};\n\nexport const SolidCardView = (params: SolidCardViewParams) => {\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const dispatch = useDispatch();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const solidGlobalSearchElementRef = useRef<any>();\n\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);\n const [viewModes, setViewModes] = useState<any[]>([]);\n const [filters, setFilters] = useState<any>({ $and: [] });\n const [cards, setCards] = useState<any[]>([]);\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n const [rows, setRows] = useState(24);\n const [rowsPerPageOptions, setRowsPerPageOptions] = useState<any[]>([12, 24, 48]);\n const [first, setFirst] = useState(0);\n const [totalRecords, setTotalRecords] = useState(0);\n const [loading, setLoading] = useState(true);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState(false);\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [solidCardViewMetaData, setSolidCardViewMetaData] = useState<any>();\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n const [showArchived, setShowArchived] = useState(false);\n\n const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)\n ? lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide)\n : [];\n\n const entityApi = createSolidEntityApi(params.modelName);\n const { useLazyGetSolidEntitiesQuery, useLazyRecoverSolidEntityByIdQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\n const [triggerRecoverSolidEntityById, { isLoading: recoverByIdIsLoading }] = useLazyRecoverSolidEntityByIdQuery();\n\n const menuItemId = searchParams.get(\"menuItemId\");\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionId = searchParams.get(\"actionId\");\n const actionName = searchParams.get(\"actionName\");\n\n const cardViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"card\",\n menuItemId,\n menuItemName,\n actionId,\n actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n\n const { data: solidCardViewMetaDataResponse } = useGetSolidViewLayoutQuery(cardViewMetaDataQs);\n\n const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\");\n const rowsOptions = rowsPerPageOptions && rowsPerPageOptions.length > 0 ? rowsPerPageOptions : [12, 24, 48];\n const paginationStart = totalRecords === 0 ? 0 : first + 1;\n const paginationEnd = Math.min(first + rows, totalRecords);\n const totalPages = rows > 0 ? Math.max(1, Math.ceil(totalRecords / rows)) : 1;\n const currentPage = rows > 0 ? Math.floor(first / rows) + 1 : 1;\n const paginationReport = `${paginationStart} - ${paginationEnd} of ${totalRecords}`;\n const canGoPrev = currentPage > 1;\n const canGoNext = currentPage < totalPages;\n\n const handleRowsChange = (value: number) => {\n const nextRows = Number(value);\n setRows(nextRows);\n setFirst(0);\n };\n\n const handlePrevPage = () => {\n if (!canGoPrev) return;\n setFirst(Math.max(0, first - rows));\n };\n\n const handleNextPage = () => {\n if (!canGoNext) return;\n setFirst(Math.min((totalPages - 1) * rows, first + rows));\n };\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (!params.modelName) return;\n\n const permissionNames = [\n permissionExpression(params.modelName, \"create\"),\n permissionExpression(params.modelName, \"update\"),\n permissionExpression(params.modelName, \"findMany\"),\n permissionExpression(\"importTransaction\", \"create\"),\n permissionExpression(\"exportTransaction\", \"create\"),\n permissionExpression(\"userViewMetadata\", \"create\"),\n permissionExpression(\"savedFilters\", \"create\"),\n ];\n\n const queryString = qs.stringify(\n { permissionNames },\n { encodeValuesOnly: true }\n );\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data?.data || []);\n };\n\n fetchPermissions();\n }, [params.modelName]);\n\n useEffect(() => {\n if (!solidCardViewMetaDataResponse) return;\n\n setSolidCardViewMetaData(solidCardViewMetaDataResponse);\n setViewModes(solidCardViewMetaDataResponse?.data?.viewModes || []);\n\n const { rows, pageSizeOptions, toPopulate, toPopulateMedia } = deriveCardViewConfig(solidCardViewMetaDataResponse);\n const persistedFilterObject = typeof window !== \"undefined\" ? getFilterObjectFromLocalStorage() : null;\n const restoredFilter = { $and: [] as any[] };\n\n if (persistedFilterObject?.custom_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.custom_filter_predicate);\n }\n if (persistedFilterObject?.search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.search_predicate);\n }\n if (persistedFilterObject?.saved_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.saved_filter_predicate);\n }\n if (persistedFilterObject?.predefined_search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.predefined_search_predicate);\n }\n\n setRows(Number(persistedFilterObject?.limit) || rows);\n setRowsPerPageOptions(pageSizeOptions);\n setFirst(Number(persistedFilterObject?.offset) || 0);\n setShowArchived(\n persistedFilterObject?.showArchived === true ||\n persistedFilterObject?.showArchived === \"true\" ||\n persistedFilterObject?.showSoftDeleted === \"inclusive\"\n );\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n setFilters(restoredFilter.$and.length > 0 ? restoredFilter : { $and: [] });\n setQueryDataLoaded(true);\n\n const layoutAttrs = solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs;\n const createActionUrl = layoutAttrs?.createAction && layoutAttrs?.createAction?.type === \"custom\"\n ? layoutAttrs?.createAction?.customComponent\n : \"form/new\";\n const editActionUrl = layoutAttrs?.editAction && layoutAttrs?.editAction?.type === \"custom\"\n ? layoutAttrs?.editAction?.customComponent\n : \"form\";\n\n if (layoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: layoutAttrs.createAction.name,\n actionType: layoutAttrs.createAction.type,\n actionContext: layoutAttrs.createAction.context,\n });\n }\n\n setCreateButtonUrl(createActionUrl);\n setEditButtonUrl(editActionUrl);\n }, [solidCardViewMetaDataResponse]);\n\n const loadCards = async (nextFilters = filters) => {\n if (!queryDataLoaded || !solidCardViewMetaDataResponse) return;\n\n setLoading(true);\n\n const queryData: any = {\n offset: first,\n limit: rows,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n filters: nextFilters,\n };\n if (showArchived) {\n queryData.showSoftDeleted = \"inclusive\";\n }\n\n try {\n const data: any = await triggerGetSolidEntities(\n qs.stringify(queryData, { encodeValuesOnly: true })\n ).unwrap();\n\n setCards(data?.records || []);\n setTotalRecords(data?.meta?.totalRecords || 0);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n void loadCards(filters);\n }, [filters, first, queryDataLoaded, rows, showArchived, solidCardViewMetaDataResponse, toPopulate, toPopulateMedia]);\n\n useEffect(() => {\n if (!queryDataLoaded) return;\n\n const persistedFilterObject = typeof window !== \"undefined\" ? (getFilterObjectFromLocalStorage() || {}) : {};\n const nextPersistedFilterObject: Record<string, any> = {\n ...persistedFilterObject,\n offset: first,\n limit: rows,\n showArchived,\n };\n\n if (showArchived) {\n nextPersistedFilterObject.showSoftDeleted = \"inclusive\";\n } else {\n delete nextPersistedFilterObject.showSoftDeleted;\n }\n\n setFilterObjectToLocalStorage(nextPersistedFilterObject);\n }, [first, queryDataLoaded, rows, showArchived]);\n\n const handleApplyCustomFilter = async (filterPredicates: any) => {\n const updatedFilter = { $and: [] as any[] };\n\n if (filterPredicates.custom_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n updatedFilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.saved_filter_predicate);\n }\n if (filterPredicates.predefined_search_predicate) {\n updatedFilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n\n setFirst(0);\n setFilters(updatedFilter);\n setFilterObjectToLocalStorage({\n offset: 0,\n limit: rows,\n showArchived,\n ...(showArchived ? { showSoftDeleted: \"inclusive\" } : {}),\n custom_filter_predicate: filterPredicates.custom_filter_predicate || {},\n search_predicate: filterPredicates.search_predicate || {},\n saved_filter_predicate: filterPredicates.saved_filter_predicate || {},\n predefined_search_predicate: filterPredicates.predefined_search_predicate || {},\n });\n };\n\n const handleFetchUpdatedRecords = () => {\n if (hasStoredFilterPredicates(getFilterObjectFromLocalStorage())) {\n solidGlobalSearchElementRef.current?.clearAppliedFilters?.();\n return;\n }\n\n void loadCards(filters);\n };\n\n const handleRecoverRecord = async (record: any) => {\n if (!record?.id) return;\n\n try {\n const response: any = await triggerRecoverSolidEntityById(record.id).unwrap();\n dispatch(showToast({\n severity: \"success\",\n summary: \"Success\",\n detail: response?.data?.message || \"Record recovered successfully.\",\n life: 3000,\n }));\n await loadCards(filters);\n } catch (error: any) {\n dispatch(showToast({\n severity: \"error\",\n summary: \"Recover Failed\",\n detail: error?.data?.message || error?.message || \"Unable to recover the selected record.\",\n life: 4000,\n }));\n }\n };\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar());\n } else {\n dispatch(showNavbar());\n }\n };\n\n const cardViewTitle = solidCardViewMetaDataResponse?.data?.solidView?.displayName;\n const showEmptyState = !loading && cards.length === 0;\n const headerRequestStatusLabel = recoverByIdIsLoading ? \"Recovering...\" : loading || !queryDataLoaded ? \"Loading...\" : null;\n\n return (\n <div className=\"page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden\">\n <div className=\"solid-list-content h-full flex way to flex-grow-1\">\n <div className=\"solid-list-surface solid-card-surface flex flex-col flex-1 min-h-0\">\n <div className=\"page-header solid-list-toolbar solid-card-toolbar flex-col lg:flex-row\">\n <div className=\"flex justify-between w-full\">\n <div className=\"flex gap-4 items-center w-full solid-list-toolbar-left\">\n {params.embeded !== true && (\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <SolidIcon name=\"si-th-large\" aria-hidden />\n </div>\n )}\n <p className=\"m-0 view-title solid-text-wrapper\">{cardViewTitle}</p>\n <div className=\"hidden lg:flex\">\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n />\n </div>\n </div>\n\n <div className=\"flex items-center solid-header-buttons-wrapper solid-list-toolbar-actions\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\n <div className=\"flex lg:hidden\">\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n aria-label=\"Toggle search\"\n leftIcon={<SolidIcon name=\"si-search\" aria-hidden />}\n />\n </div>\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, \"create\")}`) &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.create !== false && (\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n responsiveIconOnly={true}\n />\n )}\n\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => handleFetchUpdatedRecords()}\n aria-label=\"Refresh cards\"\n leftIcon={<SolidIcon name=\"si-refresh\" aria-hidden />}\n />\n\n <SolidCardViewConfigure\n solidCardViewMetaData={solidCardViewMetaDataResponse}\n modelName={params.modelName}\n actionsAllowed={actionsAllowed}\n viewModes={viewModes}\n setShowArchived={setShowArchived}\n showArchived={showArchived}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n handleRefreshView={handleFetchUpdatedRecords}\n />\n </div>\n </div>\n\n {showGlobalSearchElement && (\n <div className=\"flex lg:hidden\">\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n />\n </div>\n )}\n </div>\n\n <div className=\"solid-card-view-content\">\n <div className=\"solid-card-view-body\">\n {showEmptyState ? (\n <SolidEmptyListViewPlaceholder\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n actionsAllowed={actionsAllowed}\n params={params}\n solidListViewMetaData={solidCardViewMetaDataResponse}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n ) : (\n <CardGrid\n records={cards}\n solidCardViewMetaData={solidCardViewMetaDataResponse?.data}\n editButtonUrl={editBaseUrl}\n onRecover={handleRecoverRecord}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n showArchived={showArchived}\n />\n )}\n </div>\n\n {totalRecords > 0 && (\n <div className=\"solid-card-view-pagination\">\n <div className=\"solid-card-view-pagination-bar solid-table-paginator flex items-center justify-center gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background\">\n <div className=\"solid-paginator-meta flex items-center gap-2\">\n <span className=\"solid-paginator-label\">Records</span>\n <SolidSelect\n value={rows}\n className=\"solid-paginator-select\"\n options={rowsOptions.map((option) => ({ label: String(option), value: option }))}\n native={false}\n onChange={(event) => handleRowsChange(Number(event.value))}\n />\n <span className=\"solid-paginator-report\">{paginationReport}</span>\n </div>\n <div className=\"solid-paginator-actions flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handlePrevPage}\n disabled={!canGoPrev}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handleNextPage}\n disabled={!canGoNext}\n >\n Next\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n\n <SolidDialog\n open={isLayoutDialogVisible}\n onOpenChange={setLayoutDialogVisible}\n className=\"solid-kanban-layout-dialog\"\n style={{ width: \"min(800px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>Change Card Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-layout-dialog-body\">\n <CardUserViewLayout solidCardViewMetaData={solidCardViewMetaDataResponse} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidCardView.js","sourceRoot":"","sources":["../../../../src/components/core/card/SolidCardView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport qs from \"qs\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport { SolidEmptyListViewPlaceholder } from \"../list/SolidEmptyListViewPlaceholder\";\nimport { getFilterObjectFromLocalStorage, hasStoredFilterPredicates, setFilterObjectToLocalStorage } from \"../common/globalSearchPersistence\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { SolidCardViewConfigure } from \"./SolidCardViewConfigure\";\nimport { CardGrid } from \"./CardGrid\";\nimport { CardUserViewLayout } from \"./CardUserViewLayout\";\nimport {\n SolidButton,\n SolidConfirmDialog,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n SolidSelect,\n} from \"../../shad-cn-ui\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\n\ntype SolidCardViewParams = {\n moduleName: string;\n modelName: string;\n embeded: boolean;\n};\n\nconst deriveCardViewConfig = (solidCardViewMetaData: any) => {\n const solidView = solidCardViewMetaData?.data?.solidView;\n const solidFieldsMetadata = solidCardViewMetaData?.data?.solidFieldsMetadata || {};\n const layoutAttrs = solidView?.layout?.attrs || {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n\n const findCardNode = (nodes: any[] = []): any => {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n };\n\n const extractFields = (nodes: any, result: any[] = []) => {\n if (!nodes) return result;\n\n if (Array.isArray(nodes)) {\n nodes.forEach((node: any) => extractFields(node, result));\n return result;\n }\n\n if (nodes.type === \"field\") {\n result.push(nodes);\n }\n if (Array.isArray(nodes.children)) {\n nodes.children.forEach((child: any) => extractFields(child, result));\n }\n return result;\n };\n\n const cardNode = findCardNode(solidView?.layout?.children || []);\n const fieldSource = cardNode?.children?.length ? cardNode.children : solidView?.layout?.children || [];\n const layoutFields = extractFields(fieldSource);\n layoutFields.forEach((column: any) => {\n const fieldMetadata = solidFieldsMetadata[column?.attrs?.name];\n if (!fieldMetadata) return;\n\n if (fieldMetadata.type === \"relation\") {\n toPopulate.push(fieldMetadata.name);\n }\n if (fieldMetadata.type === \"mediaSingle\" || fieldMetadata.type === \"mediaMultiple\") {\n toPopulateMedia.push(fieldMetadata.name);\n }\n });\n\n return {\n rows: layoutAttrs.pageSize || 24,\n pageSizeOptions: layoutAttrs.pageSizeOptions || [12, 24, 48],\n toPopulate,\n toPopulateMedia,\n };\n};\n\nexport const SolidCardView = (params: SolidCardViewParams) => {\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const dispatch = useDispatch();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const solidGlobalSearchElementRef = useRef<any>();\n\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);\n const [viewModes, setViewModes] = useState<any[]>([]);\n const [filters, setFilters] = useState<any>({ $and: [] });\n const [cards, setCards] = useState<any[]>([]);\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n const [rows, setRows] = useState(24);\n const [rowsPerPageOptions, setRowsPerPageOptions] = useState<any[]>([12, 24, 48]);\n const [first, setFirst] = useState(0);\n const [totalRecords, setTotalRecords] = useState(0);\n const [loading, setLoading] = useState(true);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState(false);\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n const [showArchived, setShowArchived] = useState(false);\n const [selectedCardForDelete, setSelectedCardForDelete] = useState<any>(null);\n const [isDeleteDialogVisible, setDeleteDialogVisible] = useState(false);\n\n const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)\n ? lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide)\n : [];\n\n const entityApi = createSolidEntityApi(params.modelName);\n const { useDeleteSolidEntityMutation, useLazyGetSolidEntitiesQuery, useLazyRecoverSolidEntityByIdQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\n const [deleteSolidEntity] = useDeleteSolidEntityMutation();\n const [triggerRecoverSolidEntityById, { isLoading: recoverByIdIsLoading }] = useLazyRecoverSolidEntityByIdQuery();\n\n const menuItemId = searchParams.get(\"menuItemId\");\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionId = searchParams.get(\"actionId\");\n const actionName = searchParams.get(\"actionName\");\n\n const cardViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"card\",\n menuItemId,\n menuItemName,\n actionId,\n actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n\n const { data: solidCardViewMetaDataResponse } = useGetSolidViewLayoutQuery(cardViewMetaDataQs);\n\n const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\");\n const rowsOptions = rowsPerPageOptions && rowsPerPageOptions.length > 0 ? rowsPerPageOptions : [12, 24, 48];\n const paginationStart = totalRecords === 0 ? 0 : first + 1;\n const paginationEnd = Math.min(first + rows, totalRecords);\n const totalPages = rows > 0 ? Math.max(1, Math.ceil(totalRecords / rows)) : 1;\n const currentPage = rows > 0 ? Math.floor(first / rows) + 1 : 1;\n const paginationReport = `${paginationStart} - ${paginationEnd} of ${totalRecords}`;\n const canGoPrev = currentPage > 1;\n const canGoNext = currentPage < totalPages;\n\n const handleRowsChange = (value: number) => {\n const nextRows = Number(value);\n setRows(nextRows);\n setFirst(0);\n };\n\n const handlePrevPage = () => {\n if (!canGoPrev) return;\n setFirst(Math.max(0, first - rows));\n };\n\n const handleNextPage = () => {\n if (!canGoNext) return;\n setFirst(Math.min((totalPages - 1) * rows, first + rows));\n };\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (!params.modelName) return;\n\n const permissionNames = [\n permissionExpression(params.modelName, \"create\"),\n permissionExpression(params.modelName, \"delete\"),\n permissionExpression(params.modelName, \"update\"),\n permissionExpression(params.modelName, \"findMany\"),\n permissionExpression(\"importTransaction\", \"create\"),\n permissionExpression(\"exportTransaction\", \"create\"),\n permissionExpression(\"userViewMetadata\", \"create\"),\n permissionExpression(\"savedFilters\", \"create\"),\n ];\n\n const queryString = qs.stringify(\n { permissionNames },\n { encodeValuesOnly: true }\n );\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data?.data || []);\n };\n\n fetchPermissions();\n }, [params.modelName]);\n\n useEffect(() => {\n if (!solidCardViewMetaDataResponse) return;\n\n setViewModes(solidCardViewMetaDataResponse?.data?.viewModes || []);\n\n const { rows, pageSizeOptions, toPopulate, toPopulateMedia } = deriveCardViewConfig(solidCardViewMetaDataResponse);\n const persistedFilterObject = typeof window !== \"undefined\" ? getFilterObjectFromLocalStorage() : null;\n const restoredFilter = { $and: [] as any[] };\n\n if (persistedFilterObject?.custom_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.custom_filter_predicate);\n }\n if (persistedFilterObject?.search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.search_predicate);\n }\n if (persistedFilterObject?.saved_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.saved_filter_predicate);\n }\n if (persistedFilterObject?.predefined_search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.predefined_search_predicate);\n }\n\n setRows(Number(persistedFilterObject?.limit) || rows);\n setRowsPerPageOptions(pageSizeOptions);\n setFirst(Number(persistedFilterObject?.offset) || 0);\n setShowArchived(\n persistedFilterObject?.showArchived === true ||\n persistedFilterObject?.showArchived === \"true\" ||\n persistedFilterObject?.showSoftDeleted === \"inclusive\"\n );\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n setFilters(restoredFilter.$and.length > 0 ? restoredFilter : { $and: [] });\n setQueryDataLoaded(true);\n\n const layoutAttrs = solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs;\n const createActionUrl = layoutAttrs?.createAction && layoutAttrs?.createAction?.type === \"custom\"\n ? layoutAttrs?.createAction?.customComponent\n : \"form/new\";\n const editActionUrl = layoutAttrs?.editAction && layoutAttrs?.editAction?.type === \"custom\"\n ? layoutAttrs?.editAction?.customComponent\n : \"form\";\n\n if (layoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: layoutAttrs.createAction.name,\n actionType: layoutAttrs.createAction.type,\n actionContext: layoutAttrs.createAction.context,\n });\n }\n\n setCreateButtonUrl(createActionUrl);\n setEditButtonUrl(editActionUrl);\n }, [solidCardViewMetaDataResponse]);\n\n const loadCards = async (nextFilters = filters) => {\n if (!queryDataLoaded || !solidCardViewMetaDataResponse) return;\n\n setLoading(true);\n\n const queryData: any = {\n offset: first,\n limit: rows,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n filters: nextFilters,\n };\n if (showArchived) {\n queryData.showSoftDeleted = \"inclusive\";\n }\n\n try {\n const data: any = await triggerGetSolidEntities(\n qs.stringify(queryData, { encodeValuesOnly: true })\n ).unwrap();\n\n setCards(data?.records || []);\n setTotalRecords(data?.meta?.totalRecords || 0);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n void loadCards(filters);\n }, [filters, first, queryDataLoaded, rows, showArchived, solidCardViewMetaDataResponse, toPopulate, toPopulateMedia]);\n\n useEffect(() => {\n if (!queryDataLoaded) return;\n\n const persistedFilterObject = typeof window !== \"undefined\" ? (getFilterObjectFromLocalStorage() || {}) : {};\n const nextPersistedFilterObject: Record<string, any> = {\n ...persistedFilterObject,\n offset: first,\n limit: rows,\n showArchived,\n };\n\n if (showArchived) {\n nextPersistedFilterObject.showSoftDeleted = \"inclusive\";\n } else {\n delete nextPersistedFilterObject.showSoftDeleted;\n }\n\n setFilterObjectToLocalStorage(nextPersistedFilterObject);\n }, [first, queryDataLoaded, rows, showArchived]);\n\n const handleApplyCustomFilter = async (filterPredicates: any) => {\n const updatedFilter = { $and: [] as any[] };\n\n if (filterPredicates.custom_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n updatedFilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.saved_filter_predicate);\n }\n if (filterPredicates.predefined_search_predicate) {\n updatedFilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n\n setFirst(0);\n setFilters(updatedFilter);\n setFilterObjectToLocalStorage({\n offset: 0,\n limit: rows,\n showArchived,\n ...(showArchived ? { showSoftDeleted: \"inclusive\" } : {}),\n custom_filter_predicate: filterPredicates.custom_filter_predicate || {},\n search_predicate: filterPredicates.search_predicate || {},\n saved_filter_predicate: filterPredicates.saved_filter_predicate || {},\n predefined_search_predicate: filterPredicates.predefined_search_predicate || {},\n });\n };\n\n const handleFetchUpdatedRecords = () => {\n if (hasStoredFilterPredicates(getFilterObjectFromLocalStorage())) {\n solidGlobalSearchElementRef.current?.clearAppliedFilters?.();\n return;\n }\n\n void loadCards(filters);\n };\n\n const handleRecoverRecord = async (record: any) => {\n if (!record?.id) return;\n\n try {\n const response: any = await triggerRecoverSolidEntityById(record.id).unwrap();\n dispatch(showToast({\n severity: \"success\",\n summary: \"Success\",\n detail: response?.data?.message || \"Record recovered successfully.\",\n life: 3000,\n }));\n await loadCards(filters);\n } catch (error: any) {\n dispatch(showToast({\n severity: \"error\",\n summary: \"Recover Failed\",\n detail: error?.data?.message || error?.message || \"Unable to recover the selected record.\",\n life: 4000,\n }));\n }\n };\n\n const handleOpenDeleteDialog = (record: any) => {\n setSelectedCardForDelete(record);\n setDeleteDialogVisible(true);\n };\n\n const handleCloseDeleteDialog = () => {\n setDeleteDialogVisible(false);\n setSelectedCardForDelete(null);\n };\n\n const handleDeleteRecord = async () => {\n if (!selectedCardForDelete?.id) return;\n\n try {\n const response: any = await deleteSolidEntity(selectedCardForDelete.id).unwrap();\n dispatch(showToast({\n severity: \"success\",\n summary: \"Deleted\",\n detail: response?.data?.message || \"Record deleted successfully.\",\n life: 3000,\n }));\n handleCloseDeleteDialog();\n await loadCards(filters);\n } catch (error: any) {\n dispatch(showToast({\n severity: \"error\",\n summary: \"Delete Failed\",\n detail: error?.data?.message || error?.message || \"Unable to delete the selected record.\",\n life: 4000,\n }));\n }\n };\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar());\n } else {\n dispatch(showNavbar());\n }\n };\n\n const cardViewTitle = solidCardViewMetaDataResponse?.data?.solidView?.displayName;\n const entityDisplayName = solidCardViewMetaDataResponse?.data?.solidView?.model?.displayName || params.modelName;\n const canDeleteCards = actionsAllowed.includes(`${permissionExpression(params.modelName, \"delete\")}`) &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.delete !== false &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.showRowDeleteInContextMenu !== false;\n const showEmptyState = !loading && cards.length === 0;\n const headerRequestStatusLabel = recoverByIdIsLoading ? \"Recovering...\" : loading || !queryDataLoaded ? \"Loading...\" : null;\n\n return (\n <div className=\"page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden\">\n <div className=\"solid-list-content h-full flex way to flex-grow-1\">\n <div className=\"solid-list-surface solid-card-surface flex flex-col flex-1 min-h-0\">\n <div className=\"page-header solid-list-toolbar solid-card-toolbar flex-col lg:flex-row\">\n <div className=\"flex justify-between w-full\">\n <div className=\"flex gap-4 items-center w-full solid-list-toolbar-left\">\n {/* {params.embeded !== true && (\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <SolidIcon name=\"si-th-large\" aria-hidden />\n </div>\n )} */}\n {/* <p className=\"m-0 view-title solid-text-wrapper\">{cardViewTitle}</p> */}\n <div className=\"hidden lg:flex\">\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n />\n </div>\n </div>\n\n <div className=\"flex items-center solid-header-buttons-wrapper solid-list-toolbar-actions\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\n <div className=\"flex lg:hidden\">\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n aria-label=\"Toggle search\"\n leftIcon={<SolidIcon name=\"si-search\" aria-hidden />}\n />\n </div>\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, \"create\")}`) &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.create !== false && (\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n responsiveIconOnly={true}\n />\n )}\n\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => handleFetchUpdatedRecords()}\n aria-label=\"Refresh cards\"\n leftIcon={<SolidIcon name=\"si-refresh\" aria-hidden />}\n />\n\n <SolidCardViewConfigure\n solidCardViewMetaData={solidCardViewMetaDataResponse}\n modelName={params.modelName}\n actionsAllowed={actionsAllowed}\n viewModes={viewModes}\n setShowArchived={setShowArchived}\n showArchived={showArchived}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n handleRefreshView={handleFetchUpdatedRecords}\n />\n </div>\n </div>\n\n {showGlobalSearchElement && (\n <div className=\"flex lg:hidden\">\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n />\n </div>\n )}\n </div>\n\n <div className=\"solid-card-view-content\">\n <div className=\"solid-card-view-body\">\n {showEmptyState ? (\n <SolidEmptyListViewPlaceholder\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n actionsAllowed={actionsAllowed}\n params={params}\n solidListViewMetaData={solidCardViewMetaDataResponse}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n ) : (\n <CardGrid\n records={cards}\n solidCardViewMetaData={solidCardViewMetaDataResponse?.data}\n editButtonUrl={editBaseUrl}\n onDelete={canDeleteCards ? handleOpenDeleteDialog : undefined}\n onRecover={handleRecoverRecord}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n showArchived={showArchived}\n />\n )}\n </div>\n\n {totalRecords > 0 && (\n <div className=\"solid-card-view-pagination\">\n <div className=\"solid-card-view-pagination-bar solid-table-paginator flex items-center justify-center gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background\">\n <div className=\"solid-paginator-meta flex items-center gap-2\">\n <span className=\"solid-paginator-label\">Records</span>\n <SolidSelect\n value={rows}\n className=\"solid-paginator-select\"\n options={rowsOptions.map((option) => ({ label: String(option), value: option }))}\n native={false}\n onChange={(event) => handleRowsChange(Number(event.value))}\n />\n <span className=\"solid-paginator-report\">{paginationReport}</span>\n </div>\n <div className=\"solid-paginator-actions flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handlePrevPage}\n disabled={!canGoPrev}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handleNextPage}\n disabled={!canGoNext}\n >\n Next\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n\n <SolidConfirmDialog\n open={isDeleteDialogVisible}\n onCancel={handleCloseDeleteDialog}\n onConfirm={handleDeleteRecord}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n headerClassName=\"solid-shadcn-dialog-head\"\n bodyClassName=\"solid-shadcn-dialog-body\"\n footerClassName=\"solid-shadcn-dialog-actions\"\n separatorClassName=\"solid-shadcn-dialog-sep\"\n showSeparator\n title={`Delete ${entityDisplayName}`}\n message={\n <p className=\"solid-shadcn-dialog-text\">\n {`Are you sure you want to delete this ${entityDisplayName} record?`}\n </p>\n }\n confirmLabel=\"Delete\"\n cancelLabel=\"Cancel\"\n />\n\n <SolidDialog\n open={isLayoutDialogVisible}\n onOpenChange={setLayoutDialogVisible}\n className=\"solid-kanban-layout-dialog\"\n style={{ width: \"min(800px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>Change Card Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-layout-dialog-body\">\n <CardUserViewLayout solidCardViewMetaData={solidCardViewMetaDataResponse} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n </div>\n );\n};\n"]}
@@ -15,13 +15,14 @@ import { SolidHeaderRequestStatus } from "../../common/SolidHeaderRequestStatus"
15
15
  import { SolidCreateButton } from "../common/SolidCreateButton";
16
16
  import { SolidGlobalSearchElement } from "../common/SolidGlobalSearchElement";
17
17
  import { SolidEmptyListViewPlaceholder } from "../list/SolidEmptyListViewPlaceholder";
18
- import { getFilterObjectFromLocalStorage, hasStoredFilterPredicates, setFilterObjectToLocalStorage } from "../list/SolidListView";
18
+ import { getFilterObjectFromLocalStorage, hasStoredFilterPredicates, setFilterObjectToLocalStorage } from "../common/globalSearchPersistence";
19
19
  import { normalizeSolidListTreeKanbanActionPath } from "../../../helpers/routePaths";
20
20
  import { SolidCardViewConfigure } from "./SolidCardViewConfigure";
21
21
  import { CardGrid } from "./CardGrid";
22
22
  import { CardUserViewLayout } from "./CardUserViewLayout";
23
23
  import {
24
24
  SolidButton,
25
+ SolidConfirmDialog,
25
26
  SolidDialog,
26
27
  SolidDialogBody,
27
28
  SolidDialogClose,
@@ -126,9 +127,10 @@ export const SolidCardView = (params: SolidCardViewParams) => {
126
127
  const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);
127
128
  const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);
128
129
  const [queryDataLoaded, setQueryDataLoaded] = useState(false);
129
- const [solidCardViewMetaData, setSolidCardViewMetaData] = useState<any>();
130
130
  const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();
131
131
  const [showArchived, setShowArchived] = useState(false);
132
+ const [selectedCardForDelete, setSelectedCardForDelete] = useState<any>(null);
133
+ const [isDeleteDialogVisible, setDeleteDialogVisible] = useState(false);
132
134
 
133
135
  const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)
134
136
  ? lightboxUrls
@@ -148,8 +150,9 @@ export const SolidCardView = (params: SolidCardViewParams) => {
148
150
  : [];
149
151
 
150
152
  const entityApi = createSolidEntityApi(params.modelName);
151
- const { useLazyGetSolidEntitiesQuery, useLazyRecoverSolidEntityByIdQuery } = entityApi;
153
+ const { useDeleteSolidEntityMutation, useLazyGetSolidEntitiesQuery, useLazyRecoverSolidEntityByIdQuery } = entityApi;
152
154
  const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();
155
+ const [deleteSolidEntity] = useDeleteSolidEntityMutation();
153
156
  const [triggerRecoverSolidEntityById, { isLoading: recoverByIdIsLoading }] = useLazyRecoverSolidEntityByIdQuery();
154
157
 
155
158
  const menuItemId = searchParams.get("menuItemId");
@@ -206,6 +209,7 @@ export const SolidCardView = (params: SolidCardViewParams) => {
206
209
 
207
210
  const permissionNames = [
208
211
  permissionExpression(params.modelName, "create"),
212
+ permissionExpression(params.modelName, "delete"),
209
213
  permissionExpression(params.modelName, "update"),
210
214
  permissionExpression(params.modelName, "findMany"),
211
215
  permissionExpression("importTransaction", "create"),
@@ -228,7 +232,6 @@ export const SolidCardView = (params: SolidCardViewParams) => {
228
232
  useEffect(() => {
229
233
  if (!solidCardViewMetaDataResponse) return;
230
234
 
231
- setSolidCardViewMetaData(solidCardViewMetaDataResponse);
232
235
  setViewModes(solidCardViewMetaDataResponse?.data?.viewModes || []);
233
236
 
234
237
  const { rows, pageSizeOptions, toPopulate, toPopulateMedia } = deriveCardViewConfig(solidCardViewMetaDataResponse);
@@ -394,6 +397,39 @@ export const SolidCardView = (params: SolidCardViewParams) => {
394
397
  }
395
398
  };
396
399
 
400
+ const handleOpenDeleteDialog = (record: any) => {
401
+ setSelectedCardForDelete(record);
402
+ setDeleteDialogVisible(true);
403
+ };
404
+
405
+ const handleCloseDeleteDialog = () => {
406
+ setDeleteDialogVisible(false);
407
+ setSelectedCardForDelete(null);
408
+ };
409
+
410
+ const handleDeleteRecord = async () => {
411
+ if (!selectedCardForDelete?.id) return;
412
+
413
+ try {
414
+ const response: any = await deleteSolidEntity(selectedCardForDelete.id).unwrap();
415
+ dispatch(showToast({
416
+ severity: "success",
417
+ summary: "Deleted",
418
+ detail: response?.data?.message || "Record deleted successfully.",
419
+ life: 3000,
420
+ }));
421
+ handleCloseDeleteDialog();
422
+ await loadCards(filters);
423
+ } catch (error: any) {
424
+ dispatch(showToast({
425
+ severity: "error",
426
+ summary: "Delete Failed",
427
+ detail: error?.data?.message || error?.message || "Unable to delete the selected record.",
428
+ life: 4000,
429
+ }));
430
+ }
431
+ };
432
+
397
433
  const toggleBothSidebars = () => {
398
434
  if (visibleNavbar) {
399
435
  dispatch(toggleNavbar());
@@ -403,6 +439,10 @@ export const SolidCardView = (params: SolidCardViewParams) => {
403
439
  };
404
440
 
405
441
  const cardViewTitle = solidCardViewMetaDataResponse?.data?.solidView?.displayName;
442
+ const entityDisplayName = solidCardViewMetaDataResponse?.data?.solidView?.model?.displayName || params.modelName;
443
+ const canDeleteCards = actionsAllowed.includes(`${permissionExpression(params.modelName, "delete")}`) &&
444
+ solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.delete !== false &&
445
+ solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.showRowDeleteInContextMenu !== false;
406
446
  const showEmptyState = !loading && cards.length === 0;
407
447
  const headerRequestStatusLabel = recoverByIdIsLoading ? "Recovering..." : loading || !queryDataLoaded ? "Loading..." : null;
408
448
 
@@ -413,12 +453,12 @@ export const SolidCardView = (params: SolidCardViewParams) => {
413
453
  <div className="page-header solid-list-toolbar solid-card-toolbar flex-col lg:flex-row">
414
454
  <div className="flex justify-between w-full">
415
455
  <div className="flex gap-4 items-center w-full solid-list-toolbar-left">
416
- {params.embeded !== true && (
456
+ {/* {params.embeded !== true && (
417
457
  <div className="apps-icon block md:hidden cursor-pointer" onClick={toggleBothSidebars}>
418
458
  <SolidIcon name="si-th-large" aria-hidden />
419
459
  </div>
420
- )}
421
- <p className="m-0 view-title solid-text-wrapper">{cardViewTitle}</p>
460
+ )} */}
461
+ {/* <p className="m-0 view-title solid-text-wrapper">{cardViewTitle}</p> */}
422
462
  <div className="hidden lg:flex">
423
463
  <SolidGlobalSearchElement
424
464
  viewType="card"
@@ -509,6 +549,7 @@ export const SolidCardView = (params: SolidCardViewParams) => {
509
549
  records={cards}
510
550
  solidCardViewMetaData={solidCardViewMetaDataResponse?.data}
511
551
  editButtonUrl={editBaseUrl}
552
+ onDelete={canDeleteCards ? handleOpenDeleteDialog : undefined}
512
553
  onRecover={handleRecoverRecord}
513
554
  setLightboxUrls={setLightboxUrls}
514
555
  setOpenLightbox={setOpenLightbox}
@@ -564,6 +605,26 @@ export const SolidCardView = (params: SolidCardViewParams) => {
564
605
  />
565
606
  )}
566
607
 
608
+ <SolidConfirmDialog
609
+ open={isDeleteDialogVisible}
610
+ onCancel={handleCloseDeleteDialog}
611
+ onConfirm={handleDeleteRecord}
612
+ className="solid-shadcn-confirm-dialog solid-delete-confirm-dialog"
613
+ headerClassName="solid-shadcn-dialog-head"
614
+ bodyClassName="solid-shadcn-dialog-body"
615
+ footerClassName="solid-shadcn-dialog-actions"
616
+ separatorClassName="solid-shadcn-dialog-sep"
617
+ showSeparator
618
+ title={`Delete ${entityDisplayName}`}
619
+ message={
620
+ <p className="solid-shadcn-dialog-text">
621
+ {`Are you sure you want to delete this ${entityDisplayName} record?`}
622
+ </p>
623
+ }
624
+ confirmLabel="Delete"
625
+ cancelLabel="Cancel"
626
+ />
627
+
567
628
  <SolidDialog
568
629
  open={isLayoutDialogVisible}
569
630
  onOpenChange={setLayoutDialogVisible}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMessageComposer.d.ts","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidMessageComposer.tsx"],"names":[],"mappings":"AAQA,UAAU,yBAAyB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,qEAAsE,yBAAyB,4CA6K/H,CAAA"}
1
+ {"version":3,"file":"SolidMessageComposer.d.ts","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidMessageComposer.tsx"],"names":[],"mappings":"AAOA,UAAU,yBAAyB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,qEAAsE,yBAAyB,4CAmK/H,CAAA"}
@@ -45,26 +45,18 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
45
45
  };
46
46
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
47
47
  import styles from './chatter.module.css';
48
- import { useCreateChatterMessageMutation } from '../../../redux/api/solidChatterMessageApi';
48
+ import { usePostChatterMessageMutation } from '../../../redux/api/solidChatterMessageApi';
49
49
  import { useEffect, useState, useRef } from 'react';
50
50
  import { ERROR_MESSAGES } from '../../../constants/error-messages';
51
- import { useSession } from '../../../hooks/useSession';
52
51
  import { SolidButton, SolidTextarea } from '../../shad-cn-ui';
53
52
  import { FileText, Paperclip, X } from 'lucide-react';
54
53
  export var SolidMessageComposer = function (_a) {
55
54
  var type = _a.type, modelSingularName = _a.modelSingularName, refetch = _a.refetch, id = _a.id, onCancel = _a.onCancel, modelUserKey = _a.modelUserKey;
56
55
  var _b = useState(''), message = _b[0], setMessage = _b[1];
57
56
  var _c = useState([]), selectedFiles = _c[0], setSelectedFiles = _c[1];
58
- var _d = useSession(), session = _d.data, status = _d.status;
59
- var user = session === null || session === void 0 ? void 0 : session.user;
60
57
  var fileInputRef = useRef(null);
61
58
  // const { data: viewLayoutData } = useGetSolidViewLayoutQuery(null);
62
- var _e = useCreateChatterMessageMutation(), createChatterMessage = _e[0], _f = _e[1], isLoading = _f.isLoading, isSuccess = _f.isSuccess, isError = _f.isError;
63
- var tempEmails = [
64
- "johndoe@gmal.com",
65
- "tempmail@gmail.com",
66
- "example@mail.com"
67
- ];
59
+ var _d = usePostChatterMessageMutation(), postChatterMessage = _d[0], _e = _d[1], isLoading = _e.isLoading, isSuccess = _e.isSuccess;
68
60
  var handleFileSelect = function (event) {
69
61
  if (event.target.files) {
70
62
  var files_1 = Array.from(event.target.files);
@@ -83,18 +75,16 @@ export var SolidMessageComposer = function (_a) {
83
75
  case 1:
84
76
  _a.trys.push([1, 3, , 4]);
85
77
  formData_1 = new FormData();
86
- formData_1.append('messageType', "custom");
87
78
  formData_1.append('messageSubType', "note");
88
79
  formData_1.append('messageBody', message);
89
80
  formData_1.append('coModelEntityId', id);
90
81
  formData_1.append('coModelName', modelSingularName);
91
- formData_1.append('userId', (user === null || user === void 0 ? void 0 : user.id) || 1);
92
82
  if (modelUserKey)
93
83
  formData_1.append('modelUserKey', modelUserKey);
94
- selectedFiles.forEach(function (file, index) {
84
+ selectedFiles.forEach(function (file) {
95
85
  formData_1.append("messageAttachments", file);
96
86
  });
97
- return [4 /*yield*/, createChatterMessage(formData_1).unwrap()];
87
+ return [4 /*yield*/, postChatterMessage(formData_1).unwrap()];
98
88
  case 2:
99
89
  _a.sent();
100
90
  setMessage('');
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMessageComposer.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidMessageComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["import styles from './chatter.module.css'\nimport { useCreateChatterMessageMutation } from '../../../redux/api/solidChatterMessageApi'\nimport { useEffect, useState, useRef } from 'react'\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport { useSession } from '../../../hooks/useSession'\nimport { SolidButton, SolidTextarea } from '../../shad-cn-ui'\nimport { FileText, Paperclip, X } from 'lucide-react'\n\ninterface SolidMessageComposerProps {\n type?: string;\n modelSingularName?: any;\n refetch?: any;\n id?: any;\n onCancel?: () => void;\n modelUserKey?: string;\n}\n\nexport const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onCancel, modelUserKey }: SolidMessageComposerProps) => {\n const [message, setMessage] = useState('');\n const [selectedFiles, setSelectedFiles] = useState<File[]>([]);\n\n const { data: session, status } = useSession();\n const user = session?.user;\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // const { data: viewLayoutData } = useGetSolidViewLayoutQuery(null);\n const [createChatterMessage, { isLoading, isSuccess, isError }] = useCreateChatterMessageMutation();\n\n const tempEmails = [\n \"johndoe@gmal.com\",\n \"tempmail@gmail.com\",\n \"example@mail.com\"\n ]\n\n const handleFileSelect = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.files) {\n const files = Array.from(event.target.files);\n setSelectedFiles(prev => [...prev, ...files]);\n }\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!message.trim() && selectedFiles.length === 0) return;\n\n try {\n const formData = new FormData();\n formData.append('messageType', \"custom\");\n formData.append('messageSubType', \"note\");\n formData.append('messageBody', message);\n formData.append('coModelEntityId', id);\n formData.append('coModelName', modelSingularName);\n formData.append('userId', user?.id || 1);\n\n if (modelUserKey) formData.append('modelUserKey', modelUserKey);\n selectedFiles.forEach((file, index) => {\n formData.append(`messageAttachments`, file);\n });\n\n await createChatterMessage(formData).unwrap();\n setMessage('');\n setSelectedFiles([]);\n onCancel?.();\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_MESSAGE, error);\n }\n };\n\n useEffect(() => {\n if (isSuccess) {\n refetch()\n }\n }, [isSuccess]);\n\n const formatFileSize = (size: number) => {\n if (!size) return \"\";\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n return (\n <form className={styles.chatterMessageComposer} onSubmit={handleSubmit}>\n {/* {type === 'email' &&\n <div className='mb-2 flex items-center gap-1 text-sm'>\n <span className='font-bold'>To:</span>\n <div className={styles.chatterEmails}>\n {tempEmails.map((mail, index) => (\n <span key={index}>\n {mail}\n </span>\n ))}\n </div>\n <div className={`si si-sort-down-fill text-[var(--primary-color)] ${styles.emailTooltipIcon}`} style={{ fontSize: 8 }}>\n <div className={styles.emailsTooltip}>\n {tempEmails.map((mail, index) => (\n <span key={index} className='text-color text-sm'>\n {mail}\n </span>\n ))}\n </div>\n </div>\n </div>\n } */}\n <div className={`${styles.solidMessageWrapper} flex flex-col gap-2 w-full`}>\n <div className='flex items-center justify-between'>\n <p className='form-field-label m-0'>\n {type === 'email' ? 'Email Message' : 'Internal Note'}\n </p>\n </div>\n <SolidTextarea\n value={message}\n onChange={(e) => setMessage(e.target.value)}\n placeholder={type === 'email' ? 'Send a message to followers' : 'Log an internal note.'}\n className=\"w-full p-2\"\n rows={4}\n />\n <div className='flex items-center justify-between flex-wrap gap-2'>\n <div className='flex items-center gap-2'>\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileSelect}\n multiple\n style={{ display: 'none' }}\n />\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n leftIcon={<Paperclip size={14} />}\n onClick={() => fileInputRef.current?.click()}\n aria-label=\"Attach files\"\n title=\"Attach files\"\n />\n <span className='text-xs text-color-secondary'>Attach file</span>\n </div>\n <div className='flex items-center gap-2'>\n <SolidButton\n type='submit'\n size='sm'\n className='gap-2 solid-purple-button'\n variant='primary'\n loading={isLoading}\n disabled={!message.trim() && selectedFiles.length === 0}\n >\n {type === 'email' ? 'Send' : 'Log'}\n </SolidButton>\n <SolidButton\n type='button'\n size='sm'\n variant='ghost'\n onClick={() => {\n setMessage('');\n setSelectedFiles([]);\n onCancel?.();\n }}\n >\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n {selectedFiles.length > 0 && (\n <div className={styles.chatterSelectedFiles}>\n {selectedFiles.map((file, index) => (\n <div key={index} className={styles.chatterSelectedFileCard}>\n <div className={styles.chatterSelectedFileIcon}>\n <FileText size={16} />\n </div>\n <div className={styles.chatterSelectedFileMeta}>\n <p className={styles.chatterSelectedFileName}>{file.name}</p>\n <span className={styles.chatterSelectedFileSize}>{formatFileSize(file.size)}</span>\n </div>\n <SolidButton\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n leftIcon={<X size={12} />}\n onClick={() => setSelectedFiles(prev => prev.filter((_, i) => i !== index))}\n aria-label={`Remove ${file.name}`}\n />\n </div>\n ))}\n </div>\n )}\n </form>\n )\n}\n"]}
1
+ {"version":3,"file":"SolidMessageComposer.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidMessageComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["import styles from './chatter.module.css'\nimport { usePostChatterMessageMutation } from '../../../redux/api/solidChatterMessageApi'\nimport { useEffect, useState, useRef } from 'react'\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport { SolidButton, SolidTextarea } from '../../shad-cn-ui'\nimport { FileText, Paperclip, X } from 'lucide-react'\n\ninterface SolidMessageComposerProps {\n type?: string;\n modelSingularName?: any;\n refetch?: any;\n id?: any;\n onCancel?: () => void;\n modelUserKey?: string;\n}\n\nexport const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onCancel, modelUserKey }: SolidMessageComposerProps) => {\n const [message, setMessage] = useState('');\n const [selectedFiles, setSelectedFiles] = useState<File[]>([]);\n\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // const { data: viewLayoutData } = useGetSolidViewLayoutQuery(null);\n const [postChatterMessage, { isLoading, isSuccess }] = usePostChatterMessageMutation();\n\n const handleFileSelect = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.files) {\n const files = Array.from(event.target.files);\n setSelectedFiles(prev => [...prev, ...files]);\n }\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!message.trim() && selectedFiles.length === 0) return;\n\n try {\n const formData = new FormData();\n formData.append('messageSubType', \"note\");\n formData.append('messageBody', message);\n formData.append('coModelEntityId', id);\n formData.append('coModelName', modelSingularName);\n\n if (modelUserKey) formData.append('modelUserKey', modelUserKey);\n selectedFiles.forEach((file) => {\n formData.append(`messageAttachments`, file);\n });\n\n await postChatterMessage(formData).unwrap();\n setMessage('');\n setSelectedFiles([]);\n onCancel?.();\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_MESSAGE, error);\n }\n };\n\n useEffect(() => {\n if (isSuccess) {\n refetch()\n }\n }, [isSuccess]);\n\n const formatFileSize = (size: number) => {\n if (!size) return \"\";\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n return (\n <form className={styles.chatterMessageComposer} onSubmit={handleSubmit}>\n {/* {type === 'email' &&\n <div className='mb-2 flex items-center gap-1 text-sm'>\n <span className='font-bold'>To:</span>\n <div className={styles.chatterEmails}>\n {tempEmails.map((mail, index) => (\n <span key={index}>\n {mail}\n </span>\n ))}\n </div>\n <div className={`si si-sort-down-fill text-[var(--primary-color)] ${styles.emailTooltipIcon}`} style={{ fontSize: 8 }}>\n <div className={styles.emailsTooltip}>\n {tempEmails.map((mail, index) => (\n <span key={index} className='text-color text-sm'>\n {mail}\n </span>\n ))}\n </div>\n </div>\n </div>\n } */}\n <div className={`${styles.solidMessageWrapper} flex flex-col gap-2 w-full`}>\n <div className='flex items-center justify-between'>\n <p className='form-field-label m-0'>\n {type === 'email' ? 'Email Message' : 'Internal Note'}\n </p>\n </div>\n <SolidTextarea\n value={message}\n onChange={(e) => setMessage(e.target.value)}\n placeholder={type === 'email' ? 'Send a message to followers' : 'Log an internal note.'}\n className=\"w-full p-2\"\n rows={4}\n />\n <div className='flex items-center justify-between flex-wrap gap-2'>\n <div className='flex items-center gap-2'>\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileSelect}\n multiple\n style={{ display: 'none' }}\n />\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n leftIcon={<Paperclip size={14} />}\n onClick={() => fileInputRef.current?.click()}\n aria-label=\"Attach files\"\n title=\"Attach files\"\n />\n <span className='text-xs text-color-secondary'>Attach file</span>\n </div>\n <div className='flex items-center gap-2'>\n <SolidButton\n type='submit'\n size='sm'\n className='gap-2 solid-purple-button'\n variant='primary'\n loading={isLoading}\n disabled={!message.trim() && selectedFiles.length === 0}\n >\n {type === 'email' ? 'Send' : 'Log'}\n </SolidButton>\n <SolidButton\n type='button'\n size='sm'\n variant='ghost'\n onClick={() => {\n setMessage('');\n setSelectedFiles([]);\n onCancel?.();\n }}\n >\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n {selectedFiles.length > 0 && (\n <div className={styles.chatterSelectedFiles}>\n {selectedFiles.map((file, index) => (\n <div key={index} className={styles.chatterSelectedFileCard}>\n <div className={styles.chatterSelectedFileIcon}>\n <FileText size={16} />\n </div>\n <div className={styles.chatterSelectedFileMeta}>\n <p className={styles.chatterSelectedFileName}>{file.name}</p>\n <span className={styles.chatterSelectedFileSize}>{formatFileSize(file.size)}</span>\n </div>\n <SolidButton\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n leftIcon={<X size={12} />}\n onClick={() => setSelectedFiles(prev => prev.filter((_, i) => i !== index))}\n aria-label={`Remove ${file.name}`}\n />\n </div>\n ))}\n </div>\n )}\n </form>\n )\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  import styles from './chatter.module.css'
2
- import { useCreateChatterMessageMutation } from '../../../redux/api/solidChatterMessageApi'
2
+ import { usePostChatterMessageMutation } from '../../../redux/api/solidChatterMessageApi'
3
3
  import { useEffect, useState, useRef } from 'react'
4
4
  import { ERROR_MESSAGES } from '../../../constants/error-messages'
5
- import { useSession } from '../../../hooks/useSession'
6
5
  import { SolidButton, SolidTextarea } from '../../shad-cn-ui'
7
6
  import { FileText, Paperclip, X } from 'lucide-react'
8
7
 
@@ -19,18 +18,10 @@ export const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onC
19
18
  const [message, setMessage] = useState('');
20
19
  const [selectedFiles, setSelectedFiles] = useState<File[]>([]);
21
20
 
22
- const { data: session, status } = useSession();
23
- const user = session?.user;
24
21
  const fileInputRef = useRef<HTMLInputElement>(null);
25
22
 
26
23
  // const { data: viewLayoutData } = useGetSolidViewLayoutQuery(null);
27
- const [createChatterMessage, { isLoading, isSuccess, isError }] = useCreateChatterMessageMutation();
28
-
29
- const tempEmails = [
30
- "johndoe@gmal.com",
31
- "tempmail@gmail.com",
32
- "example@mail.com"
33
- ]
24
+ const [postChatterMessage, { isLoading, isSuccess }] = usePostChatterMessageMutation();
34
25
 
35
26
  const handleFileSelect = (event: React.ChangeEvent<HTMLInputElement>) => {
36
27
  if (event.target.files) {
@@ -45,19 +36,17 @@ export const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onC
45
36
 
46
37
  try {
47
38
  const formData = new FormData();
48
- formData.append('messageType', "custom");
49
39
  formData.append('messageSubType', "note");
50
40
  formData.append('messageBody', message);
51
41
  formData.append('coModelEntityId', id);
52
42
  formData.append('coModelName', modelSingularName);
53
- formData.append('userId', user?.id || 1);
54
43
 
55
44
  if (modelUserKey) formData.append('modelUserKey', modelUserKey);
56
- selectedFiles.forEach((file, index) => {
45
+ selectedFiles.forEach((file) => {
57
46
  formData.append(`messageAttachments`, file);
58
47
  });
59
48
 
60
- await createChatterMessage(formData).unwrap();
49
+ await postChatterMessage(formData).unwrap();
61
50
  setMessage('');
62
51
  setSelectedFiles([]);
63
52
  onCancel?.();
@@ -1 +1 @@
1
- {"version":3,"file":"SolidChangePassword.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidChangePassword.tsx"],"names":[],"mappings":"AAqFA,eAAO,MAAM,mBAAmB,0BAA2B,GAAG,4CA2J7D,CAAC"}
1
+ {"version":3,"file":"SolidChangePassword.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidChangePassword.tsx"],"names":[],"mappings":"AAqFA,eAAO,MAAM,mBAAmB,0BAA2B,GAAG,4CA6J7D,CAAC"}
@@ -169,6 +169,7 @@ export var SolidChangePassword = function (_a) {
169
169
  var error = formik.errors[field];
170
170
  return typeof error === "string" ? error : null;
171
171
  };
172
- return (_jsxs("form", { onSubmit: formik.handleSubmit, className: styles.accountForm, children: [_jsx(ToastMessage, { toast: toast, onClose: function () { return setToast(null); } }), _jsxs("div", { className: styles.accountScroll, children: [_jsxs("div", { className: styles.formStack, children: [_jsxs("div", { className: styles.field, children: [_jsx("label", { htmlFor: "currentPassword", children: "Current Password" }), _jsx(PasswordInput, { id: "currentPassword", name: "currentPassword", value: formik.values.currentPassword, onChange: formik.handleChange, onBlur: formik.handleBlur }), fieldError("currentPassword") ? _jsx("p", { className: styles.errorText, children: fieldError("currentPassword") }) : null] }), _jsxs("div", { className: styles.field, children: [_jsx("label", { htmlFor: "newPassword", children: "New Password" }), _jsx(PasswordInput, { id: "newPassword", name: "newPassword", value: formik.values.newPassword, onChange: formik.handleChange, onBlur: formik.handleBlur }), fieldError("newPassword") ? _jsx("p", { className: styles.errorText, children: fieldError("newPassword") }) : null] }), _jsxs("div", { className: styles.field, children: [_jsx("label", { htmlFor: "confirmPassword", children: "Confirm New Password" }), _jsx(PasswordInput, { id: "confirmPassword", name: "confirmPassword", value: formik.values.confirmPassword, onChange: formik.handleChange, onBlur: formik.handleBlur }), fieldError("confirmPassword") ? _jsx("p", { className: styles.errorText, children: fieldError("confirmPassword") }) : null] })] }), _jsx("div", { className: styles.passwordHintWrap, children: _jsx(SolidPasswordHelperText, { text: (_f = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _f === void 0 ? void 0 : _f.authenticationPasswordComplexityDescription }) })] }), _jsx("div", { className: styles.footerActions, children: _jsx(SolidButton, { type: "submit", size: "sm", loading: formik.isSubmitting, children: "Change Password" }) })] }));
172
+ var isChangePasswordDisabled = !formik.dirty || !formik.isValid || formik.isSubmitting;
173
+ return (_jsxs("form", { onSubmit: formik.handleSubmit, className: styles.accountForm, children: [_jsx(ToastMessage, { toast: toast, onClose: function () { return setToast(null); } }), _jsxs("div", { className: styles.accountScroll, children: [_jsxs("div", { className: styles.formStack, children: [_jsxs("div", { className: styles.field, children: [_jsx("label", { htmlFor: "currentPassword", children: "Current Password" }), _jsx(PasswordInput, { id: "currentPassword", name: "currentPassword", value: formik.values.currentPassword, onChange: formik.handleChange, onBlur: formik.handleBlur }), fieldError("currentPassword") ? _jsx("p", { className: styles.errorText, children: fieldError("currentPassword") }) : null] }), _jsxs("div", { className: styles.field, children: [_jsx("label", { htmlFor: "newPassword", children: "New Password" }), _jsx(PasswordInput, { id: "newPassword", name: "newPassword", value: formik.values.newPassword, onChange: formik.handleChange, onBlur: formik.handleBlur }), fieldError("newPassword") ? _jsx("p", { className: styles.errorText, children: fieldError("newPassword") }) : null] }), _jsxs("div", { className: styles.field, children: [_jsx("label", { htmlFor: "confirmPassword", children: "Confirm New Password" }), _jsx(PasswordInput, { id: "confirmPassword", name: "confirmPassword", value: formik.values.confirmPassword, onChange: formik.handleChange, onBlur: formik.handleBlur }), fieldError("confirmPassword") ? _jsx("p", { className: styles.errorText, children: fieldError("confirmPassword") }) : null] })] }), _jsx("div", { className: styles.passwordHintWrap, children: _jsx(SolidPasswordHelperText, { text: (_f = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _f === void 0 ? void 0 : _f.authenticationPasswordComplexityDescription }) })] }), _jsx("div", { className: styles.footerActions, children: _jsx(SolidButton, { type: "submit", size: "sm", loading: formik.isSubmitting, disabled: isChangePasswordDisabled, children: "Change Password" }) })] }));
173
174
  };
174
175
  //# sourceMappingURL=SolidChangePassword.js.map