@appcorp/stellar-solutions-modules 0.1.54 → 0.1.56
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.
- package/global-modules/bank/bank.d.ts +7 -1
- package/global-modules/bank/bank.js +8 -22
- package/global-modules/bank/constants.js +5 -5
- package/global-modules/bank/context.js +40 -42
- package/global-modules/bank/drawer.d.ts +0 -4
- package/global-modules/bank/drawer.js +10 -8
- package/global-modules/bank/form.d.ts +0 -3
- package/global-modules/bank/form.js +18 -15
- package/global-modules/bank/types.d.ts +1 -1
- package/global-modules/bank/validate.js +2 -2
- package/global-modules/branch/branch.d.ts +7 -1
- package/global-modules/branch/branch.js +8 -22
- package/global-modules/branch/constants.js +1 -1
- package/global-modules/branch/context.js +36 -22
- package/global-modules/branch/drawer.d.ts +0 -4
- package/global-modules/branch/drawer.js +10 -8
- package/global-modules/branch/form.d.ts +0 -3
- package/global-modules/branch/form.js +13 -14
- package/global-modules/branch/types.d.ts +1 -1
- package/global-modules/branch/validate.js +6 -6
- package/global-modules/payment-mode/constants.js +1 -1
- package/global-modules/payment-mode/context.js +8 -10
- package/global-modules/payment-mode/drawer.d.ts +0 -4
- package/global-modules/payment-mode/drawer.js +10 -8
- package/global-modules/payment-mode/form.d.ts +0 -3
- package/global-modules/payment-mode/form.js +8 -9
- package/global-modules/payment-mode/payment-mode.d.ts +1 -1
- package/global-modules/payment-mode/payment-mode.js +40 -44
- package/global-modules/payment-mode/types.d.ts +1 -1
- package/global-modules/payment-mode/validate.js +2 -2
- package/global-modules/preferences/constants.d.ts +0 -4
- package/global-modules/preferences/constants.js +14 -17
- package/global-modules/preferences/currency.js +2 -2
- package/global-modules/preferences/preferences.js +2 -6
- package/global-modules/tax/constants.js +1 -1
- package/global-modules/tax/context.js +6 -3
- package/global-modules/tax/drawer.d.ts +0 -4
- package/global-modules/tax/drawer.js +10 -8
- package/global-modules/tax/form.d.ts +0 -4
- package/global-modules/tax/form.js +8 -9
- package/global-modules/tax/tax.d.ts +1 -1
- package/global-modules/tax/tax.js +39 -43
- package/global-modules/tax/types.d.ts +1 -1
- package/index.d.ts +0 -30
- package/index.js +0 -46
- package/lib/toast-utils.d.ts +0 -44
- package/lib/toast-utils.js +240 -212
- package/lib/utils.d.ts +0 -2
- package/lib/utils.js +5 -12
- package/package.json +6 -7
- package/components/theme-provider.d.ts +0 -9
- package/components/theme-provider.js +0 -122
- package/components/theme-switcher.d.ts +0 -4
- package/components/theme-switcher.js +0 -60
- package/components/ui/badge.d.ts +0 -9
- package/components/ui/badge.js +0 -82
- package/components/ui/button.d.ts +0 -10
- package/components/ui/button.js +0 -91
- package/components/ui/card.d.ts +0 -9
- package/components/ui/card.js +0 -94
- package/components/ui/carousel.d.ts +0 -19
- package/components/ui/carousel.js +0 -168
- package/components/ui/checkbox.d.ts +0 -9
- package/components/ui/checkbox.js +0 -87
- package/components/ui/combobox.d.ts +0 -70
- package/components/ui/combobox.js +0 -315
- package/components/ui/command.d.ts +0 -18
- package/components/ui/command.js +0 -115
- package/components/ui/dialog.d.ts +0 -15
- package/components/ui/dialog.js +0 -118
- package/components/ui/drawer.d.ts +0 -13
- package/components/ui/drawer.js +0 -115
- package/components/ui/dropdown-menu.d.ts +0 -25
- package/components/ui/dropdown-menu.js +0 -148
- package/components/ui/enhanced-dropzone.d.ts +0 -21
- package/components/ui/enhanced-dropzone.js +0 -187
- package/components/ui/enhanced-table-footer-action.d.ts +0 -35
- package/components/ui/enhanced-table-footer-action.js +0 -110
- package/components/ui/enhanced-table-footer-page.d.ts +0 -34
- package/components/ui/enhanced-table-footer-page.js +0 -132
- package/components/ui/enhanced-table-footer-pagination.d.ts +0 -38
- package/components/ui/enhanced-table-footer-pagination.js +0 -116
- package/components/ui/enhanced-table-header-action.d.ts +0 -7
- package/components/ui/enhanced-table-header-action.js +0 -21
- package/components/ui/enhanced-table-header-search.d.ts +0 -12
- package/components/ui/enhanced-table-header-search.js +0 -17
- package/components/ui/enhanced-table.d.ts +0 -87
- package/components/ui/enhanced-table.js +0 -221
- package/components/ui/form.d.ts +0 -24
- package/components/ui/form.js +0 -125
- package/components/ui/input.d.ts +0 -8
- package/components/ui/input.js +0 -86
- package/components/ui/label.d.ts +0 -7
- package/components/ui/label.js +0 -68
- package/components/ui/popover.d.ts +0 -7
- package/components/ui/popover.js +0 -82
- package/components/ui/select.d.ts +0 -15
- package/components/ui/select.js +0 -127
- package/components/ui/separator.d.ts +0 -4
- package/components/ui/separator.js +0 -66
- package/components/ui/shadcn-io/color-picker/index.d.ts +0 -43
- package/components/ui/shadcn-io/color-picker/index.js +0 -304
- package/components/ui/shadcn-io/dropzone/index.d.ts +0 -19
- package/components/ui/shadcn-io/dropzone/index.js +0 -131
- package/components/ui/sonner.d.ts +0 -4
- package/components/ui/sonner.js +0 -54
- package/components/ui/switch.d.ts +0 -9
- package/components/ui/switch.js +0 -89
- package/components/ui/table.d.ts +0 -10
- package/components/ui/table.js +0 -101
- package/components/ui/textarea.d.ts +0 -8
- package/components/ui/textarea.js +0 -86
|
@@ -84,7 +84,7 @@ var util_functions_1 = require("@react-pakistan/util-functions");
|
|
|
84
84
|
var actions_1 = require("./actions");
|
|
85
85
|
var constants_1 = require("./constants");
|
|
86
86
|
var reducer_1 = require("./reducer");
|
|
87
|
-
var toast_utils_1 = require("
|
|
87
|
+
var toast_utils_1 = require("@appcorp/shadcn/lib/toast-utils");
|
|
88
88
|
var types_1 = require("./types");
|
|
89
89
|
var validate_1 = require("./validate");
|
|
90
90
|
var context_1 = require("../preferences/context");
|
|
@@ -96,7 +96,7 @@ var useBranchState = function () {
|
|
|
96
96
|
// STATE & CORE HOOKS
|
|
97
97
|
// ---------------------------------------------------------------------------
|
|
98
98
|
var _a = (0, react_1.useReducer)(reducer_1.branchReducer, reducer_1.initialBranchState), state = _a[0], dispatch = _a[1];
|
|
99
|
-
var
|
|
99
|
+
var preferences = (0, context_1.usePreferenceStateContext)().preferences;
|
|
100
100
|
var theme = (0, next_themes_1.useTheme)().theme;
|
|
101
101
|
var t = (0, next_intl_1.useTranslations)("branch");
|
|
102
102
|
var tCommon = (0, next_intl_1.useTranslations)("common");
|
|
@@ -175,6 +175,10 @@ var useBranchState = function () {
|
|
|
175
175
|
var data = _a.data, error = _a.error;
|
|
176
176
|
if (error) {
|
|
177
177
|
showErrorToast(tCommon("messagesNetworkError"));
|
|
178
|
+
dispatch({
|
|
179
|
+
type: actions_1.BRANCH_ACTION_TYPES.SET_DISABLE_SAVE_BUTTON,
|
|
180
|
+
payload: { disableSaveButton: false },
|
|
181
|
+
});
|
|
178
182
|
}
|
|
179
183
|
if (data) {
|
|
180
184
|
showSuccessToast(t("messagesBranchUpdated"));
|
|
@@ -221,7 +225,7 @@ var useBranchState = function () {
|
|
|
221
225
|
// ---------------------------------------------------------------------------
|
|
222
226
|
// MODULE ENTITY HOOK
|
|
223
227
|
// ---------------------------------------------------------------------------
|
|
224
|
-
var
|
|
228
|
+
var _b = (0, util_functions_1.useModuleEntity)({
|
|
225
229
|
byIdCallback: byIdCallback,
|
|
226
230
|
byIdParams: byIdParams,
|
|
227
231
|
deleteCallback: deleteCallback,
|
|
@@ -229,26 +233,24 @@ var useBranchState = function () {
|
|
|
229
233
|
listCallback: listCallback,
|
|
230
234
|
listParams: listParams,
|
|
231
235
|
listUrl: constants_1.BRANCH_API_ROUTES.BRANCHES,
|
|
232
|
-
searchQuery:
|
|
236
|
+
searchQuery: debouncedQuery,
|
|
233
237
|
unitByIdUrl: constants_1.BRANCH_API_ROUTES.BRANCH_BY_ID,
|
|
234
238
|
unitUrl: constants_1.BRANCH_API_ROUTES.BRANCH,
|
|
235
239
|
updateCallback: updateCallback,
|
|
236
240
|
updateDeps: [state],
|
|
237
241
|
updateParams: updateParams,
|
|
238
|
-
}), byIdError =
|
|
242
|
+
}), byIdError = _b.byIdError, byIdFetchNow = _b.byIdFetchNow, byIdLoading = _b.byIdLoading, deleteError = _b.deleteError, deleteFetchNow = _b.deleteFetchNow, deleteLoading = _b.deleteLoading, listError = _b.listError, listFetchNow = _b.listFetchNow, listLoading = _b.listLoading, updateError = _b.updateError, updateFetchNow = _b.updateFetchNow, updateLoading = _b.updateLoading;
|
|
239
243
|
// ---------------------------------------------------------------------------
|
|
240
244
|
// EFFECTS (list refresh)
|
|
241
245
|
// ---------------------------------------------------------------------------
|
|
242
246
|
(0, react_1.useEffect)(function () {
|
|
243
|
-
|
|
244
|
-
listFetchNow();
|
|
245
|
-
}
|
|
247
|
+
listFetchNow();
|
|
246
248
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
247
|
-
}, [debouncedQuery, state.currentPage, state.pageLimit
|
|
249
|
+
}, [debouncedQuery, state.currentPage, state.pageLimit]);
|
|
248
250
|
// ---------------------------------------------------------------------------
|
|
249
251
|
// DRAWER & MODAL HANDLERS
|
|
250
252
|
// ---------------------------------------------------------------------------
|
|
251
|
-
var closeDrawer =
|
|
253
|
+
var closeDrawer = function () {
|
|
252
254
|
dispatch({
|
|
253
255
|
type: actions_1.BRANCH_ACTION_TYPES.SET_DRAWER,
|
|
254
256
|
payload: { drawer: null },
|
|
@@ -259,7 +261,7 @@ var useBranchState = function () {
|
|
|
259
261
|
dispatch({
|
|
260
262
|
type: actions_1.BRANCH_ACTION_TYPES.RESET_ERRORS,
|
|
261
263
|
});
|
|
262
|
-
}
|
|
264
|
+
};
|
|
263
265
|
// ---------------------------------------------------------------------------
|
|
264
266
|
// CRUD OPERATION HANDLERS
|
|
265
267
|
// ---------------------------------------------------------------------------
|
|
@@ -283,10 +285,17 @@ var useBranchState = function () {
|
|
|
283
285
|
// FORM HANDLERS
|
|
284
286
|
// ---------------------------------------------------------------------------
|
|
285
287
|
var handleInputChange = (0, react_1.useCallback)(function (key, value) {
|
|
288
|
+
dispatch({
|
|
289
|
+
type: actions_1.BRANCH_ACTION_TYPES.RESET_ERRORS,
|
|
290
|
+
});
|
|
286
291
|
dispatch({
|
|
287
292
|
type: actions_1.BRANCH_ACTION_TYPES.SET_INPUT_FIELD,
|
|
288
293
|
payload: { key: key, value: value },
|
|
289
294
|
});
|
|
295
|
+
dispatch({
|
|
296
|
+
type: actions_1.BRANCH_ACTION_TYPES.SET_DISABLE_SAVE_BUTTON,
|
|
297
|
+
payload: { disableSaveButton: false },
|
|
298
|
+
});
|
|
290
299
|
}, []);
|
|
291
300
|
var handleSubmit = (0, react_1.useCallback)(function () {
|
|
292
301
|
dispatch({
|
|
@@ -306,46 +315,51 @@ var useBranchState = function () {
|
|
|
306
315
|
type: actions_1.BRANCH_ACTION_TYPES.SET_ERRORS,
|
|
307
316
|
payload: { errors: errors },
|
|
308
317
|
});
|
|
318
|
+
dispatch({
|
|
319
|
+
type: actions_1.BRANCH_ACTION_TYPES.SET_DISABLE_SAVE_BUTTON,
|
|
320
|
+
payload: { disableSaveButton: false },
|
|
321
|
+
});
|
|
322
|
+
showErrorToast(tCommon("messagesValidationError"));
|
|
309
323
|
},
|
|
310
324
|
});
|
|
311
|
-
}, [updateFetchNow, updateParams]);
|
|
325
|
+
}, [updateFetchNow, updateParams, showErrorToast, tCommon]);
|
|
312
326
|
// ---------------------------------------------------------------------------
|
|
313
327
|
// PAGINATION HANDLERS
|
|
314
328
|
// ---------------------------------------------------------------------------
|
|
315
|
-
var handleNextClick =
|
|
329
|
+
var handleNextClick = function () {
|
|
316
330
|
dispatch({
|
|
317
331
|
type: actions_1.BRANCH_ACTION_TYPES.SET_CURRENT_PAGE,
|
|
318
332
|
payload: { currentPage: state.currentPage + 1 },
|
|
319
333
|
});
|
|
320
|
-
}
|
|
321
|
-
var handlePreviousClick =
|
|
334
|
+
};
|
|
335
|
+
var handlePreviousClick = function () {
|
|
322
336
|
dispatch({
|
|
323
337
|
type: actions_1.BRANCH_ACTION_TYPES.SET_CURRENT_PAGE,
|
|
324
338
|
payload: { currentPage: state.currentPage - 1 },
|
|
325
339
|
});
|
|
326
|
-
}
|
|
327
|
-
var handlePageLimit =
|
|
340
|
+
};
|
|
341
|
+
var handlePageLimit = function (k, v) {
|
|
328
342
|
var val = __assign({}, v);
|
|
329
343
|
dispatch({
|
|
330
344
|
type: actions_1.BRANCH_ACTION_TYPES.SET_PAGE_LIMIT,
|
|
331
345
|
payload: { pageLimit: Number(val.option) },
|
|
332
346
|
});
|
|
333
|
-
}
|
|
347
|
+
};
|
|
334
348
|
// ---------------------------------------------------------------------------
|
|
335
349
|
// SEARCH HANDLERS
|
|
336
350
|
// ---------------------------------------------------------------------------
|
|
337
|
-
var searchOnChange =
|
|
351
|
+
var searchOnChange = function (k, v) {
|
|
338
352
|
dispatch({
|
|
339
353
|
type: actions_1.BRANCH_ACTION_TYPES.SET_SEARCH_QUERY,
|
|
340
354
|
payload: { searchQuery: v },
|
|
341
355
|
});
|
|
342
|
-
}
|
|
343
|
-
var clearSearch =
|
|
356
|
+
};
|
|
357
|
+
var clearSearch = function () {
|
|
344
358
|
dispatch({
|
|
345
359
|
type: actions_1.BRANCH_ACTION_TYPES.SET_SEARCH_QUERY,
|
|
346
360
|
payload: { searchQuery: "" },
|
|
347
361
|
});
|
|
348
|
-
}
|
|
362
|
+
};
|
|
349
363
|
// ---------------------------------------------------------------------------
|
|
350
364
|
// TABLE ACTIONS (memoized)
|
|
351
365
|
// ---------------------------------------------------------------------------
|
|
@@ -22,10 +22,6 @@ import { FC } from "react";
|
|
|
22
22
|
interface BranchDrawerProps {
|
|
23
23
|
/** Whether the interface is in RTL (Right-to-Left) mode */
|
|
24
24
|
isRTL: boolean;
|
|
25
|
-
/** Translation map for internationalization */
|
|
26
|
-
translationMap: {
|
|
27
|
-
[key: string]: string;
|
|
28
|
-
};
|
|
29
25
|
}
|
|
30
26
|
export declare const BranchDrawer: FC<BranchDrawerProps>;
|
|
31
27
|
export {};
|
|
@@ -26,10 +26,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.BranchDrawer = void 0;
|
|
27
27
|
var react_1 = __importDefault(require("react"));
|
|
28
28
|
var lucide_react_1 = require("lucide-react");
|
|
29
|
-
var button_1 = require("
|
|
30
|
-
var drawer_1 = require("
|
|
29
|
+
var button_1 = require("@appcorp/shadcn/components/button");
|
|
30
|
+
var drawer_1 = require("@appcorp/shadcn/components/drawer");
|
|
31
31
|
var context_1 = require("./context");
|
|
32
32
|
var form_1 = require("./form");
|
|
33
|
+
var next_intl_1 = require("next-intl");
|
|
33
34
|
// ============================================================================
|
|
34
35
|
// CONSTANTS
|
|
35
36
|
// ============================================================================
|
|
@@ -43,10 +44,11 @@ var getDrawerDirection = function (isRTL) {
|
|
|
43
44
|
// COMPONENT
|
|
44
45
|
// ============================================================================
|
|
45
46
|
var BranchDrawer = function (_a) {
|
|
47
|
+
var isRTL = _a.isRTL;
|
|
48
|
+
var t = (0, next_intl_1.useTranslations)("branch");
|
|
46
49
|
// ============================================================================
|
|
47
50
|
// HOOKS & STATE
|
|
48
51
|
// ============================================================================
|
|
49
|
-
var isRTL = _a.isRTL, translationMap = _a.translationMap;
|
|
50
52
|
var _b = (0, context_1.useBranchStateContext)(), closeDrawer = _b.closeDrawer, disableSaveButton = _b.disableSaveButton, drawer = _b.drawer, handleSubmit = _b.handleSubmit;
|
|
51
53
|
// ============================================================================
|
|
52
54
|
// COMPUTED VALUES
|
|
@@ -59,17 +61,17 @@ var BranchDrawer = function (_a) {
|
|
|
59
61
|
return (react_1.default.createElement(drawer_1.Drawer, { open: isDrawerOpen, onOpenChange: function (open) { return !open && closeDrawer(); }, direction: drawerDirection },
|
|
60
62
|
react_1.default.createElement(drawer_1.DrawerContent, { className: "h-full ".concat(DRAWER_WIDTH, " ").concat(isRTL ? "rtl" : "ltr"), dir: isRTL ? "rtl" : "ltr" },
|
|
61
63
|
react_1.default.createElement(drawer_1.DrawerHeader, { className: "flex-row items-center justify-between border-b pb-4 ".concat(isRTL ? "flex-row-reverse" : "") },
|
|
62
|
-
react_1.default.createElement(drawer_1.DrawerTitle, { className: "text-xl font-semibold flex items-center ".concat(isRTL ? "flex-row-reverse gap-2" : "gap-2") }, (
|
|
64
|
+
react_1.default.createElement(drawer_1.DrawerTitle, { className: "text-xl font-semibold flex items-center ".concat(isRTL ? "flex-row-reverse gap-2" : "gap-2") }, t("drawerTitleBranch")),
|
|
63
65
|
react_1.default.createElement(drawer_1.DrawerClose, { asChild: true },
|
|
64
66
|
react_1.default.createElement(button_1.Button, { variant: "ghost", size: "icon", className: "h-8 w-8" },
|
|
65
67
|
react_1.default.createElement(lucide_react_1.X, { className: "h-4 w-4" }),
|
|
66
|
-
react_1.default.createElement("span", { className: "sr-only" }, (
|
|
68
|
+
react_1.default.createElement("span", { className: "sr-only" }, t("drawerButtonClose"))))),
|
|
67
69
|
react_1.default.createElement("div", { className: "flex-1 overflow-y-auto px-4 py-6 ".concat(isRTL ? "text-right" : "text-left") },
|
|
68
|
-
react_1.default.createElement(form_1.Form, { isRTL: isRTL
|
|
70
|
+
react_1.default.createElement(form_1.Form, { isRTL: isRTL })),
|
|
69
71
|
react_1.default.createElement(drawer_1.DrawerFooter, { className: "border-t pt-4" },
|
|
70
72
|
react_1.default.createElement("div", { className: "flex gap-2 ".concat(isRTL ? "flex-row-reverse" : "") },
|
|
71
|
-
react_1.default.createElement(button_1.Button, { variant: "outline", onClick: closeDrawer, className: "flex-1", type: "button" }, (
|
|
72
|
-
react_1.default.createElement(button_1.Button, { onClick: handleSubmit, disabled: disableSaveButton, className: "flex-1", type: "button" }, (
|
|
73
|
+
react_1.default.createElement(button_1.Button, { variant: "outline", onClick: closeDrawer, className: "flex-1", type: "button" }, t("drawerButtonCancel")),
|
|
74
|
+
react_1.default.createElement(button_1.Button, { onClick: handleSubmit, disabled: disableSaveButton, className: "flex-1", type: "button" }, t("drawerButtonSave")))))));
|
|
73
75
|
};
|
|
74
76
|
exports.BranchDrawer = BranchDrawer;
|
|
75
77
|
// ============================================================================
|
|
@@ -19,13 +19,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
19
|
exports.Form = void 0;
|
|
20
20
|
var react_1 = __importDefault(require("react"));
|
|
21
21
|
var next_intl_1 = require("next-intl");
|
|
22
|
-
var input_1 = require("
|
|
23
|
-
var switch_1 = require("
|
|
22
|
+
var input_1 = require("@appcorp/shadcn/components/input");
|
|
23
|
+
var switch_1 = require("@appcorp/shadcn/components/switch");
|
|
24
24
|
var context_1 = require("./context");
|
|
25
25
|
var Form = function (_a) {
|
|
26
|
-
var isRTL = _a.isRTL
|
|
27
|
-
var t = (0, next_intl_1.useTranslations)("
|
|
28
|
-
var ui = (0, next_intl_1.useTranslations)("ui");
|
|
26
|
+
var isRTL = _a.isRTL;
|
|
27
|
+
var t = (0, next_intl_1.useTranslations)("branch");
|
|
29
28
|
var _b = (0, context_1.useBranchStateContext)(), branchAddress = _b.branchAddress, branchName = _b.branchName, enabled = _b.enabled, errors = _b.errors, handleInputChange = _b.handleInputChange, isDefault = _b.isDefault, personEmail = _b.personEmail, personName = _b.personName, personPhone = _b.personPhone;
|
|
30
29
|
// Helper function to translate validation error keys
|
|
31
30
|
var getTranslatedError = function (key) {
|
|
@@ -41,22 +40,22 @@ var Form = function (_a) {
|
|
|
41
40
|
react_1.default.createElement("div", { className: "space-y-4" },
|
|
42
41
|
react_1.default.createElement("div", { className: "space-y-4" },
|
|
43
42
|
react_1.default.createElement("div", { className: "space-y-2" },
|
|
44
|
-
react_1.default.createElement(input_1.Input, { id: "branchName", type: "text", label: (
|
|
43
|
+
react_1.default.createElement(input_1.Input, { id: "branchName", type: "text", label: t("formLabelBranchName"), value: branchName || "", onChange: function (e) { return handleInputChange("branchName", e.target.value); }, placeholder: t("formPlaceholderBranchName"), info: t("formInfoBranchName"), error: getTranslatedError("branchName"), required: true })),
|
|
45
44
|
react_1.default.createElement("div", { className: "space-y-2" },
|
|
46
|
-
react_1.default.createElement(input_1.Input, { id: "branchAddress", type: "text", label: (
|
|
45
|
+
react_1.default.createElement(input_1.Input, { id: "branchAddress", type: "text", label: t("formLabelBranchAddress"), value: branchAddress || "", onChange: function (e) {
|
|
47
46
|
return handleInputChange("branchAddress", e.target.value);
|
|
48
|
-
}, placeholder: "
|
|
47
|
+
}, placeholder: t("formPlaceholderBranchAddress"), info: t("formInfoBranchAddress"), error: getTranslatedError("branchAddress"), required: true }))),
|
|
49
48
|
react_1.default.createElement("div", { className: "space-y-4" },
|
|
50
49
|
react_1.default.createElement("div", { className: "space-y-2" },
|
|
51
|
-
react_1.default.createElement(input_1.Input, { id: "personName", type: "text", label: (
|
|
50
|
+
react_1.default.createElement(input_1.Input, { id: "personName", type: "text", label: t("formLabelPersonName"), value: personName || "", onChange: function (e) { return handleInputChange("personName", e.target.value); }, placeholder: t("formPlaceholderPersonName"), info: t("formInfoPersonName"), error: getTranslatedError("personName"), required: true })),
|
|
52
51
|
react_1.default.createElement("div", { className: "space-y-2" },
|
|
53
|
-
react_1.default.createElement(input_1.Input, { id: "personEmail", type: "email", label: (
|
|
52
|
+
react_1.default.createElement(input_1.Input, { id: "personEmail", type: "email", label: t("formLabelPersonEmail"), value: personEmail || "", onChange: function (e) { return handleInputChange("personEmail", e.target.value); }, placeholder: t("formPlaceholderPersonEmail"), info: t("formInfoPersonEmail"), error: getTranslatedError("personEmail"), required: true })),
|
|
54
53
|
react_1.default.createElement("div", { className: "space-y-2" },
|
|
55
|
-
react_1.default.createElement(input_1.Input, { id: "personPhone", type: "tel", label: (
|
|
54
|
+
react_1.default.createElement(input_1.Input, { id: "personPhone", type: "tel", label: t("formLabelPersonPhone"), value: personPhone || "", onChange: function (e) { return handleInputChange("personPhone", e.target.value); }, placeholder: t("formPlaceholderPersonPhone"), info: t("formInfoPersonPhone"), error: getTranslatedError("personPhone"), required: true }))),
|
|
56
55
|
react_1.default.createElement("div", { className: "space-y-4" },
|
|
57
|
-
react_1.default.createElement(switch_1.Switch, { id: "enabled", label: (
|
|
58
|
-
react_1.default.createElement(switch_1.Switch, { id: "isDefault", label: (
|
|
56
|
+
react_1.default.createElement(switch_1.Switch, { id: "enabled", label: t("formLabelEnabled"), checked: enabled || false, onCheckedChange: function (checked) { return handleInputChange("enabled", checked); }, info: t("formInfoEnabled"), error: getTranslatedError("enabled") }),
|
|
57
|
+
react_1.default.createElement(switch_1.Switch, { id: "isDefault", label: t("formLabelIsDefault"), checked: isDefault || false, onCheckedChange: function (checked) {
|
|
59
58
|
return handleInputChange("isDefault", checked);
|
|
60
|
-
}, info:
|
|
59
|
+
}, info: t("formInfoIsDefault"), error: getTranslatedError("isDefault") })))));
|
|
61
60
|
};
|
|
62
61
|
exports.Form = Form;
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* - Types: PascalCase following interface conventions
|
|
24
24
|
*/
|
|
25
25
|
import { Dispatch } from "react";
|
|
26
|
-
import { RowAction, HeaderAction } from "
|
|
26
|
+
import { RowAction, HeaderAction } from "@appcorp/shadcn/components/enhanced-table";
|
|
27
27
|
import { BranchActions } from "./actions";
|
|
28
28
|
/**
|
|
29
29
|
* Branch Context Interface
|
|
@@ -4,12 +4,12 @@ exports.formValidation = void 0;
|
|
|
4
4
|
var zod_1 = require("zod");
|
|
5
5
|
// Validation error keys for i18n translation
|
|
6
6
|
var VALIDATION_KEYS = {
|
|
7
|
-
branchNameRequired: "
|
|
8
|
-
branchAddressRequired: "
|
|
9
|
-
personNameRequired: "
|
|
10
|
-
personEmailRequired: "
|
|
11
|
-
personPhoneRequired: "
|
|
12
|
-
preferenceIdRequired: "
|
|
7
|
+
branchNameRequired: "validationBranchNameRequired",
|
|
8
|
+
branchAddressRequired: "validationBranchAddressRequired",
|
|
9
|
+
personNameRequired: "validationPersonNameRequired",
|
|
10
|
+
personEmailRequired: "validationPersonEmailRequired",
|
|
11
|
+
personPhoneRequired: "validationPersonPhoneRequired",
|
|
12
|
+
preferenceIdRequired: "validationPreferenceIdRequired",
|
|
13
13
|
};
|
|
14
14
|
exports.formValidation = zod_1.z.object({
|
|
15
15
|
branchAddress: zod_1.z.string().nonempty(VALIDATION_KEYS.branchAddressRequired),
|
|
@@ -84,7 +84,7 @@ var util_functions_1 = require("@react-pakistan/util-functions");
|
|
|
84
84
|
var actions_1 = require("./actions");
|
|
85
85
|
var constants_1 = require("./constants");
|
|
86
86
|
var reducer_1 = require("./reducer");
|
|
87
|
-
var toast_utils_1 = require("
|
|
87
|
+
var toast_utils_1 = require("@appcorp/shadcn/lib/toast-utils");
|
|
88
88
|
var types_1 = require("./types");
|
|
89
89
|
var validate_1 = require("./validate");
|
|
90
90
|
var context_1 = require("../preferences/context");
|
|
@@ -96,7 +96,7 @@ var usePaymentModeState = function () {
|
|
|
96
96
|
// STATE & CORE HOOKS
|
|
97
97
|
// ---------------------------------------------------------------------------
|
|
98
98
|
var _a = (0, react_1.useReducer)(reducer_1.paymentModeReducer, reducer_1.initialPaymentModeState), state = _a[0], dispatch = _a[1];
|
|
99
|
-
var
|
|
99
|
+
var preferences = (0, context_1.usePreferenceStateContext)().preferences;
|
|
100
100
|
var theme = (0, next_themes_1.useTheme)().theme;
|
|
101
101
|
var t = (0, next_intl_1.useTranslations)("paymentMode");
|
|
102
102
|
var tCommon = (0, next_intl_1.useTranslations)("common");
|
|
@@ -207,7 +207,7 @@ var usePaymentModeState = function () {
|
|
|
207
207
|
// ---------------------------------------------------------------------------
|
|
208
208
|
// MODULE ENTITY HOOK
|
|
209
209
|
// ---------------------------------------------------------------------------
|
|
210
|
-
var
|
|
210
|
+
var _b = (0, util_functions_1.useModuleEntity)({
|
|
211
211
|
byIdCallback: byIdCallback,
|
|
212
212
|
byIdParams: byIdParams,
|
|
213
213
|
deleteCallback: deleteCallback,
|
|
@@ -215,22 +215,20 @@ var usePaymentModeState = function () {
|
|
|
215
215
|
listCallback: listCallback,
|
|
216
216
|
listParams: listParams,
|
|
217
217
|
listUrl: constants_1.PAYMENT_MODE_API_ROUTES.PAYMENT_MODES,
|
|
218
|
-
searchQuery:
|
|
218
|
+
searchQuery: debouncedQuery,
|
|
219
219
|
unitByIdUrl: constants_1.PAYMENT_MODE_API_ROUTES.PAYMENT_MODE_BY_ID,
|
|
220
220
|
unitUrl: constants_1.PAYMENT_MODE_API_ROUTES.PAYMENT_MODE,
|
|
221
221
|
updateCallback: updateCallback,
|
|
222
222
|
updateDeps: [state],
|
|
223
223
|
updateParams: updateParams,
|
|
224
|
-
}), byIdError =
|
|
224
|
+
}), byIdError = _b.byIdError, byIdFetchNow = _b.byIdFetchNow, byIdLoading = _b.byIdLoading, deleteError = _b.deleteError, deleteFetchNow = _b.deleteFetchNow, deleteLoading = _b.deleteLoading, listError = _b.listError, listFetchNow = _b.listFetchNow, listLoading = _b.listLoading, updateError = _b.updateError, updateFetchNow = _b.updateFetchNow, updateLoading = _b.updateLoading;
|
|
225
225
|
// ---------------------------------------------------------------------------
|
|
226
226
|
// EFFECTS (list refresh)
|
|
227
227
|
// ---------------------------------------------------------------------------
|
|
228
228
|
(0, react_1.useEffect)(function () {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
233
|
-
}, [debouncedQuery, state.currentPage, state.pageLimit, activeTab]);
|
|
229
|
+
listFetchNow();
|
|
230
|
+
// eslint-disable-next-line
|
|
231
|
+
}, [debouncedQuery, state.currentPage, state.pageLimit]);
|
|
234
232
|
// ---------------------------------------------------------------------------
|
|
235
233
|
// DRAWER & MODAL HANDLERS
|
|
236
234
|
// ---------------------------------------------------------------------------
|
|
@@ -22,10 +22,6 @@ import { FC } from "react";
|
|
|
22
22
|
interface PaymentModeDrawerProps {
|
|
23
23
|
/** Whether the interface is in RTL (Right-to-Left) mode */
|
|
24
24
|
isRTL: boolean;
|
|
25
|
-
/** Translation map for internationalization */
|
|
26
|
-
translationMap: {
|
|
27
|
-
[key: string]: string;
|
|
28
|
-
};
|
|
29
25
|
}
|
|
30
26
|
export declare const PaymentModeDrawer: FC<PaymentModeDrawerProps>;
|
|
31
27
|
export {};
|
|
@@ -26,10 +26,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.PaymentModeDrawer = void 0;
|
|
27
27
|
var react_1 = __importDefault(require("react"));
|
|
28
28
|
var lucide_react_1 = require("lucide-react");
|
|
29
|
-
var button_1 = require("
|
|
30
|
-
var drawer_1 = require("
|
|
29
|
+
var button_1 = require("@appcorp/shadcn/components/button");
|
|
30
|
+
var drawer_1 = require("@appcorp/shadcn/components/drawer");
|
|
31
31
|
var context_1 = require("./context");
|
|
32
32
|
var form_1 = require("./form");
|
|
33
|
+
var next_intl_1 = require("next-intl");
|
|
33
34
|
// ============================================================================
|
|
34
35
|
// CONSTANTS
|
|
35
36
|
// ============================================================================
|
|
@@ -43,10 +44,11 @@ var getDrawerDirection = function (isRTL) {
|
|
|
43
44
|
// COMPONENT
|
|
44
45
|
// ============================================================================
|
|
45
46
|
var PaymentModeDrawer = function (_a) {
|
|
47
|
+
var isRTL = _a.isRTL;
|
|
48
|
+
var t = (0, next_intl_1.useTranslations)("paymentMode");
|
|
46
49
|
// ============================================================================
|
|
47
50
|
// HOOKS & STATE
|
|
48
51
|
// ============================================================================
|
|
49
|
-
var isRTL = _a.isRTL, translationMap = _a.translationMap;
|
|
50
52
|
var _b = (0, context_1.usePaymentModeStateContext)(), closeDrawer = _b.closeDrawer, disableSaveButton = _b.disableSaveButton, drawer = _b.drawer, handleSubmit = _b.handleSubmit;
|
|
51
53
|
// ============================================================================
|
|
52
54
|
// COMPUTED VALUES
|
|
@@ -59,17 +61,17 @@ var PaymentModeDrawer = function (_a) {
|
|
|
59
61
|
return (react_1.default.createElement(drawer_1.Drawer, { open: isDrawerOpen, onOpenChange: function (open) { return !open && closeDrawer(); }, direction: drawerDirection },
|
|
60
62
|
react_1.default.createElement(drawer_1.DrawerContent, { className: "h-full ".concat(DRAWER_WIDTH, " ").concat(isRTL ? "rtl" : "ltr"), dir: isRTL ? "rtl" : "ltr" },
|
|
61
63
|
react_1.default.createElement(drawer_1.DrawerHeader, { className: "flex-row items-center justify-between border-b pb-4 ".concat(isRTL ? "flex-row-reverse" : "") },
|
|
62
|
-
react_1.default.createElement(drawer_1.DrawerTitle, { className: "text-xl font-semibold flex items-center ".concat(isRTL ? "flex-row-reverse gap-2" : "gap-2") }, (
|
|
64
|
+
react_1.default.createElement(drawer_1.DrawerTitle, { className: "text-xl font-semibold flex items-center ".concat(isRTL ? "flex-row-reverse gap-2" : "gap-2") }, t("drawerTitlePaymentMode")),
|
|
63
65
|
react_1.default.createElement(drawer_1.DrawerClose, { asChild: true },
|
|
64
66
|
react_1.default.createElement(button_1.Button, { variant: "ghost", size: "icon", className: "h-8 w-8" },
|
|
65
67
|
react_1.default.createElement(lucide_react_1.X, { className: "h-4 w-4" }),
|
|
66
|
-
react_1.default.createElement("span", { className: "sr-only" }, (
|
|
68
|
+
react_1.default.createElement("span", { className: "sr-only" }, t("drawerButtonClose"))))),
|
|
67
69
|
react_1.default.createElement("div", { className: "flex-1 overflow-y-auto px-4 py-6 ".concat(isRTL ? "text-right" : "text-left") },
|
|
68
|
-
react_1.default.createElement(form_1.PaymentModeForm, { isRTL: isRTL
|
|
70
|
+
react_1.default.createElement(form_1.PaymentModeForm, { isRTL: isRTL })),
|
|
69
71
|
react_1.default.createElement(drawer_1.DrawerFooter, { className: "border-t pt-4" },
|
|
70
72
|
react_1.default.createElement("div", { className: "flex gap-2 ".concat(isRTL ? "flex-row-reverse" : "") },
|
|
71
|
-
react_1.default.createElement(button_1.Button, { variant: "outline", onClick: closeDrawer, className: "flex-1", type: "button" }, (
|
|
72
|
-
react_1.default.createElement(button_1.Button, { onClick: handleSubmit, disabled: disableSaveButton, className: "flex-1", type: "button" }, (
|
|
73
|
+
react_1.default.createElement(button_1.Button, { variant: "outline", onClick: closeDrawer, className: "flex-1", type: "button" }, t("drawerButtonCancel")),
|
|
74
|
+
react_1.default.createElement(button_1.Button, { onClick: handleSubmit, disabled: disableSaveButton, className: "flex-1", type: "button" }, t("drawerButtonSave")))))));
|
|
73
75
|
};
|
|
74
76
|
exports.PaymentModeDrawer = PaymentModeDrawer;
|
|
75
77
|
// ============================================================================
|
|
@@ -19,13 +19,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
19
|
exports.PaymentModeForm = void 0;
|
|
20
20
|
var react_1 = __importDefault(require("react"));
|
|
21
21
|
var next_intl_1 = require("next-intl");
|
|
22
|
-
var input_1 = require("
|
|
23
|
-
var switch_1 = require("
|
|
22
|
+
var input_1 = require("@appcorp/shadcn/components/input");
|
|
23
|
+
var switch_1 = require("@appcorp/shadcn/components/switch");
|
|
24
24
|
var context_1 = require("./context");
|
|
25
25
|
var PaymentModeForm = function (_a) {
|
|
26
|
-
var isRTL = _a.isRTL
|
|
27
|
-
var t = (0, next_intl_1.useTranslations)("
|
|
28
|
-
var ui = (0, next_intl_1.useTranslations)("ui");
|
|
26
|
+
var isRTL = _a.isRTL;
|
|
27
|
+
var t = (0, next_intl_1.useTranslations)("paymentMode");
|
|
29
28
|
var _b = (0, context_1.usePaymentModeStateContext)(), enabled = _b.enabled, errors = _b.errors, handleInputChange = _b.handleInputChange, isDefault = _b.isDefault, label = _b.label;
|
|
30
29
|
// Helper function to translate validation error keys
|
|
31
30
|
var getTranslatedError = function (key) {
|
|
@@ -40,11 +39,11 @@ var PaymentModeForm = function (_a) {
|
|
|
40
39
|
return (react_1.default.createElement("div", { className: "space-y-6 ".concat(isRTL ? "rtl" : "ltr"), dir: isRTL ? "rtl" : "ltr" },
|
|
41
40
|
react_1.default.createElement("div", { className: "space-y-4" },
|
|
42
41
|
react_1.default.createElement("div", { className: "space-y-2" },
|
|
43
|
-
react_1.default.createElement(input_1.Input, { id: "label", type: "text", label: (
|
|
42
|
+
react_1.default.createElement(input_1.Input, { id: "label", type: "text", label: t("formLabelLabel"), value: label || "", onChange: function (e) { return handleInputChange("label", e.target.value); }, placeholder: t("formPlaceholderLabel"), info: t("formInfoLabel"), error: getTranslatedError("label"), required: true })),
|
|
44
43
|
react_1.default.createElement("div", { className: "space-y-4" },
|
|
45
|
-
react_1.default.createElement(switch_1.Switch, { id: "enabled", label: (
|
|
46
|
-
react_1.default.createElement(switch_1.Switch, { id: "isDefault", label: (
|
|
44
|
+
react_1.default.createElement(switch_1.Switch, { id: "enabled", label: t("formLabelEnabled"), checked: enabled || false, onCheckedChange: function (checked) { return handleInputChange("enabled", checked); }, info: t("formInfoEnabled"), error: getTranslatedError("enabled") }),
|
|
45
|
+
react_1.default.createElement(switch_1.Switch, { id: "isDefault", label: t("formLabelIsDefault"), checked: isDefault || false, onCheckedChange: function (checked) {
|
|
47
46
|
return handleInputChange("isDefault", checked);
|
|
48
|
-
}, info:
|
|
47
|
+
}, info: t("formInfoIsDefault"), error: getTranslatedError("isDefault") })))));
|
|
49
48
|
};
|
|
50
49
|
exports.PaymentModeForm = PaymentModeForm;
|