@solidstarters/solid-core-ui 1.1.11 → 1.1.13
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/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidForgotPassword.js +2 -1
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +2 -1
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js +2 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +2 -1
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -1
- package/dist/components/auth/SolidOTPVerify.js +2 -1
- package/dist/components/auth/SolidOTPVerify.js.map +1 -1
- package/dist/components/auth/SolidRegister.d.ts.map +1 -1
- package/dist/components/auth/SolidRegister.js +125 -103
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidResetPassword.js +2 -1
- package/dist/components/auth/SolidResetPassword.js.map +1 -1
- package/dist/components/common/DropzonePlaceholder.js +1 -1
- package/dist/components/common/DropzonePlaceholder.js.map +1 -1
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +43 -31
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/core/common/FilterComponent.d.ts +2 -1
- package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
- package/dist/components/core/common/FilterComponent.js +52 -16
- package/dist/components/core/common/FilterComponent.js.map +1 -1
- package/dist/components/core/common/SolidConfigureLayoutElement.d.ts +1 -1
- package/dist/components/core/common/SolidConfigureLayoutElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidConfigureLayoutElement.js +5 -2
- package/dist/components/core/common/SolidConfigureLayoutElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +131 -23
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/filter/SolidManyToOneFilterElement.d.ts.map +1 -1
- package/dist/components/core/filter/SolidManyToOneFilterElement.js +1 -1
- package/dist/components/core/filter/SolidManyToOneFilterElement.js.map +1 -1
- package/dist/components/core/filter/SolidSelectionDynamicFilterElement.js +1 -1
- package/dist/components/core/filter/SolidSelectionDynamicFilterElement.js.map +1 -1
- package/dist/components/core/filter/SolidSelectionStaticFilterElement.js +1 -1
- package/dist/components/core/filter/SolidSelectionStaticFilterElement.js.map +1 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts.map +1 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.js +11 -10
- package/dist/components/core/filter/SolidVarInputsFilterElement.js.map +1 -1
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +18 -9
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.js +4 -4
- package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateField.js +7 -7
- package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidDateTimeField.js +7 -7
- package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.js +4 -4
- package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.js +4 -4
- package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
- package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidJsonField.js +2 -2
- package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.js +2 -2
- package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +155 -46
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +87 -31
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.js +2 -2
- package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js +4 -4
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.js +4 -4
- package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.js +2 -2
- package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidTimeField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidTimeField.js +7 -7
- package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +2 -2
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +2 -2
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +2 -2
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +57 -54
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +20 -16
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +23 -23
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +42 -11
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
- package/dist/components/layout/navbar-two-menu.js +6 -2
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
- package/dist/components/layout/user-profile-menu.js +7 -3
- package/dist/components/layout/user-profile-menu.js.map +1 -1
- package/dist/helpers/AppTitle.d.ts +4 -0
- package/dist/helpers/AppTitle.d.ts.map +1 -0
- package/dist/helpers/AppTitle.js +8 -0
- package/dist/helpers/AppTitle.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/auth/SolidForgotPassword.tsx +2 -6
- package/src/components/auth/SolidInitialLoginOtp.tsx +2 -6
- package/src/components/auth/SolidInitiateRegisterOtp.tsx +2 -6
- package/src/components/auth/SolidLogin.tsx +2 -5
- package/src/components/auth/SolidOTPVerify.tsx +4 -7
- package/src/components/auth/SolidRegister.tsx +207 -178
- package/src/components/auth/SolidResetPassword.tsx +2 -6
- package/src/components/common/DropzonePlaceholder.tsx +1 -1
- package/src/components/common/GeneralSettings.tsx +310 -193
- package/src/components/core/common/FilterComponent.tsx +148 -202
- package/src/components/core/common/SolidConfigureLayoutElement.tsx +6 -4
- package/src/components/core/common/SolidGlobalSearchElement.tsx +193 -50
- package/src/components/core/filter/SolidManyToOneFilterElement.tsx +3 -1
- package/src/components/core/filter/SolidSelectionDynamicFilterElement.tsx +1 -1
- package/src/components/core/filter/SolidSelectionStaticFilterElement.tsx +1 -1
- package/src/components/core/filter/SolidVarInputsFilterElement.tsx +103 -135
- package/src/components/core/form/SolidFormView.tsx +32 -21
- package/src/components/core/form/fields/SolidBooleanField.tsx +8 -6
- package/src/components/core/form/fields/SolidDateField.tsx +5 -5
- package/src/components/core/form/fields/SolidDateTimeField.tsx +23 -22
- package/src/components/core/form/fields/SolidDecimalField.tsx +5 -3
- package/src/components/core/form/fields/SolidIntegerField.tsx +18 -16
- package/src/components/core/form/fields/SolidJsonField.tsx +14 -12
- package/src/components/core/form/fields/SolidLongTextField.tsx +18 -17
- package/src/components/core/form/fields/SolidMediaMultipleField.tsx +257 -79
- package/src/components/core/form/fields/SolidMediaSingleField.tsx +148 -61
- package/src/components/core/form/fields/SolidRichTextField.tsx +6 -4
- package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +6 -5
- package/src/components/core/form/fields/SolidSelectionStaticField.tsx +24 -23
- package/src/components/core/form/fields/SolidShortTextField.tsx +19 -17
- package/src/components/core/form/fields/SolidTimeField.tsx +23 -21
- package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +2 -2
- package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +17 -16
- package/src/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +2 -2
- package/src/components/core/list/SolidListView.tsx +60 -43
- package/src/components/core/model/CreateModel.tsx +92 -81
- package/src/components/core/module/CreateModule.tsx +181 -183
- package/src/components/layout/AppSidebar.tsx +35 -10
- package/src/components/layout/navbar-two-menu.tsx +6 -1
- package/src/components/layout/user-profile-menu.tsx +20 -8
- package/src/helpers/AppTitle.tsx +14 -0
- package/src/index.ts +2 -1
- package/dist/components/common/FilterComponent.d.ts +0 -3
- package/dist/components/common/FilterComponent.d.ts.map +0 -1
- package/dist/components/common/FilterComponent.js +0 -214
- package/dist/components/common/FilterComponent.js.map +0 -1
- package/dist/components/core/extension/dynamicComponentMap.d.ts +0 -3
- package/dist/components/core/extension/dynamicComponentMap.d.ts.map +0 -1
- package/dist/components/core/extension/dynamicComponentMap.js +0 -6
- package/dist/components/core/extension/dynamicComponentMap.js.map +0 -1
- package/dist/components/core/hooks/GlobalStateContext.d.ts +0 -11
- package/dist/components/core/hooks/GlobalStateContext.d.ts.map +0 -1
- package/dist/components/core/hooks/GlobalStateContext.js +0 -17
- package/dist/components/core/hooks/GlobalStateContext.js.map +0 -1
|
@@ -375,7 +375,7 @@ const CreateModule = ({ data }: any) => {
|
|
|
375
375
|
return (
|
|
376
376
|
<div className="solid-form-wrapper">
|
|
377
377
|
<Toast ref={toast} />
|
|
378
|
-
<form onSubmit={formik.handleSubmit}>
|
|
378
|
+
<form style={{ width: '77.5%', borderRight: '1px solid var(--primary-light-color' }} onSubmit={formik.handleSubmit}>
|
|
379
379
|
<div className="solid-form-header">
|
|
380
380
|
{pathname.includes('new') ?
|
|
381
381
|
<>
|
|
@@ -410,197 +410,195 @@ const CreateModule = ({ data }: any) => {
|
|
|
410
410
|
<SolidFormStepper />
|
|
411
411
|
</div>
|
|
412
412
|
<div className="p-4 solid-form-content">
|
|
413
|
-
<
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
<
|
|
417
|
-
<
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
<
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
<
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
<
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
413
|
+
<p className="form-wrapper-heading text-base">Basic Info</p>
|
|
414
|
+
<div className="formgrid grid">
|
|
415
|
+
<div className="field col-6 flex flex-column gap-2">
|
|
416
|
+
<label htmlFor="displayName" className="form-field-label">
|
|
417
|
+
Display Name <span style={{ color: 'red' }}>*</span>
|
|
418
|
+
</label>
|
|
419
|
+
<InputText
|
|
420
|
+
disabled={data ? true : false}
|
|
421
|
+
type="text"
|
|
422
|
+
id="displayName"
|
|
423
|
+
name="displayName"
|
|
424
|
+
// onChange={formik.handleChange}
|
|
425
|
+
onChange={(e) => {
|
|
426
|
+
formik.handleChange(e);
|
|
427
|
+
const { toKebabCase, toSnakeCase, toPluralCamelCase } = getSingularAndPlural(e.target.value);
|
|
428
|
+
if (pathname.includes('new')) {
|
|
429
|
+
formik.setFieldValue("name", toKebabCase);
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
}}
|
|
433
|
+
value={formik.values.displayName}
|
|
434
|
+
className={classNames("", {
|
|
435
|
+
"p-invalid": isFormFieldValid(formik, "displayName"),
|
|
436
|
+
})}
|
|
437
|
+
/>
|
|
438
|
+
{isFormFieldValid(formik, "displayName") && (
|
|
439
|
+
<Message
|
|
440
|
+
severity="error"
|
|
441
|
+
text={formik?.errors?.displayName?.toString()}
|
|
442
|
+
/>
|
|
443
|
+
)}
|
|
444
|
+
</div>
|
|
445
|
+
<div className="field col-6 flex flex-column gap-2">
|
|
446
|
+
<label htmlFor="name" className="form-field-label">
|
|
447
|
+
Name <span style={{ color: 'red' }}>*</span>
|
|
448
|
+
</label>
|
|
449
|
+
<InputText
|
|
450
|
+
disabled
|
|
451
|
+
type="text"
|
|
452
|
+
id="name"
|
|
453
|
+
name="name"
|
|
454
|
+
onChange={formik.handleChange}
|
|
455
|
+
value={formik.values.name}
|
|
456
|
+
className={classNames("", {
|
|
457
|
+
"p-invalid": isFormFieldValid(formik, "name"),
|
|
458
|
+
})}
|
|
459
|
+
/>
|
|
460
|
+
{isFormFieldValid(formik, "name") && (
|
|
461
|
+
<Message severity="error" text={formik?.errors?.name?.toString()} />
|
|
462
|
+
)}
|
|
463
|
+
</div>
|
|
464
|
+
</div>
|
|
465
|
+
<div className="formgrid grid mt-4">
|
|
466
|
+
<div className="field col-6 flex flex-column gap-2">
|
|
467
|
+
<label htmlFor="description" className="form-field-label">
|
|
468
|
+
Menu Sequence Number
|
|
469
|
+
</label>
|
|
470
|
+
<InputText
|
|
471
|
+
id="menuSequenceNumber"
|
|
472
|
+
type="number"
|
|
473
|
+
onChange={formik.handleChange}
|
|
474
|
+
min={0}
|
|
475
|
+
value={formik.values.menuSequenceNumber}
|
|
476
|
+
className={classNames("", {
|
|
477
|
+
"p-invalid": isFormFieldValid(formik, "menuSequenceNumber"),
|
|
478
|
+
})}
|
|
479
|
+
/>
|
|
480
|
+
{isFormFieldValid(formik, "menuSequenceNumber") && (
|
|
481
|
+
<Message
|
|
482
|
+
severity="error"
|
|
483
|
+
text={formik?.errors?.menuSequenceNumber?.toString()}
|
|
484
|
+
/>
|
|
485
|
+
)}
|
|
486
|
+
</div>
|
|
487
|
+
<div className="field col-6 flex flex-column gap-2">
|
|
488
|
+
<label htmlFor="description" className="form-field-label">
|
|
489
|
+
Description <span style={{ color: 'red' }}>*</span>
|
|
490
|
+
</label>
|
|
491
|
+
<InputTextarea
|
|
492
|
+
id="description"
|
|
493
|
+
name="description"
|
|
494
|
+
onChange={formik.handleChange}
|
|
495
|
+
value={formik.values.description}
|
|
496
|
+
className={classNames("", {
|
|
497
|
+
"p-invalid": isFormFieldValid(formik, "description"),
|
|
498
|
+
})}
|
|
499
|
+
rows={5}
|
|
500
|
+
cols={30}
|
|
501
|
+
/>
|
|
502
|
+
{isFormFieldValid(formik, "description") && (
|
|
503
|
+
<Message
|
|
504
|
+
severity="error"
|
|
505
|
+
text={formik?.errors?.description?.toString()}
|
|
506
|
+
/>
|
|
507
|
+
)}
|
|
508
|
+
</div>
|
|
509
|
+
</div>
|
|
510
|
+
<Divider />
|
|
511
|
+
<p className="form-wrapper-heading text-base" style={{ fontSize: 16 }}>Configurations</p>
|
|
512
|
+
<div className="formgrid grid">
|
|
513
|
+
<div className="field col-6 flex flex-column gap-2">
|
|
514
|
+
<label htmlFor="defaultDataSource" className="form-field-label">
|
|
515
|
+
Default Data Source
|
|
516
|
+
</label>
|
|
517
|
+
<SingleSelectAutoCompleteField
|
|
518
|
+
disabled={data ? true : false}
|
|
519
|
+
key="defaultDataSource"
|
|
520
|
+
formik={formik}
|
|
521
|
+
isFormFieldValid={isFormFieldValid}
|
|
522
|
+
// relationField={false}
|
|
523
|
+
fieldName="defaultDataSource"
|
|
524
|
+
fieldNameId={null}
|
|
525
|
+
labelKey="label"
|
|
526
|
+
valueKey="value"
|
|
527
|
+
searchData={serachDDefaultDataSource}
|
|
528
|
+
existingData={formik.values.defaultDataSource}
|
|
529
|
+
/>
|
|
530
|
+
{isFormFieldValid(formik, "defaultDataSource") && (
|
|
531
|
+
<Message
|
|
532
|
+
severity="error"
|
|
533
|
+
text={formik?.errors?.defaultDataSource?.toString()}
|
|
534
|
+
/>
|
|
535
|
+
)}
|
|
536
|
+
</div>
|
|
537
|
+
<div className="field col-6 flex flex-column gap-2">
|
|
538
|
+
<label htmlFor="menuIconUrl" className="form-label form-field-label">
|
|
539
|
+
Menu Icon <small className="text-red-500 helper-text">(only svg, png and jpeg are allowed)</small>
|
|
540
|
+
</label>
|
|
541
|
+
<div {...getRootPropsmenuIcon()} className="solid-dropzone-wrapper">
|
|
542
|
+
<input {...getInputPropsmenuIcon()} />
|
|
543
|
+
<DropzonePlaceholder />
|
|
511
544
|
</div>
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
labelKey="label"
|
|
528
|
-
valueKey="value"
|
|
529
|
-
searchData={serachDDefaultDataSource}
|
|
530
|
-
existingData={formik.values.defaultDataSource}
|
|
531
|
-
/>
|
|
532
|
-
{isFormFieldValid(formik, "defaultDataSource") && (
|
|
533
|
-
<Message
|
|
534
|
-
severity="error"
|
|
535
|
-
text={formik?.errors?.defaultDataSource?.toString()}
|
|
536
|
-
/>
|
|
537
|
-
)}
|
|
538
|
-
</div>
|
|
539
|
-
<div className="field col-6 flex flex-column gap-2">
|
|
540
|
-
<label htmlFor="menuIconUrl" className="form-label form-field-label">
|
|
541
|
-
Menu Icon <small className="text-red-500 helper-text">(only svg, png and jpeg are allowed)</small>
|
|
542
|
-
</label>
|
|
543
|
-
<div {...getRootPropsmenuIcon()} className="solid-dropzone-wrapper">
|
|
544
|
-
<input {...getInputPropsmenuIcon()} />
|
|
545
|
-
<DropzonePlaceholder />
|
|
546
|
-
</div>
|
|
547
|
-
{isFormFieldValid(formik, "menuIconUrl") && (
|
|
548
|
-
<Message severity="error" text={formik?.errors?.menuIconUrl?.toString()} />
|
|
549
|
-
)}
|
|
550
|
-
|
|
551
|
-
{fileDetails && (
|
|
552
|
-
<div className="solid-file-upload-wrapper">
|
|
553
|
-
<div className="flex align-items-center gap-2">
|
|
554
|
-
<FileReaderExt fileDetails={fileDetails} />
|
|
555
|
-
<div className="w-full flex flex-column gap-1">
|
|
556
|
-
<div className="flex align-items-center justify-content-between">
|
|
557
|
-
<div className="font-bold">{fileDetails.name}</div>
|
|
558
|
-
<div className="cancel-upload-button" onClick={handleCancelUpload}>
|
|
559
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="6" height="6" viewBox="0 0 6 6" fill="none">
|
|
560
|
-
<path d="M0.6 6L0 5.4L2.4 3L0 0.6L0.6 0L3 2.4L5.4 0L6 0.6L3.6 3L6 5.4L5.4 6L3 3.6L0.6 6Z" fill="#4B4D52" />
|
|
561
|
-
</svg>
|
|
562
|
-
</div>
|
|
563
|
-
</div>
|
|
564
|
-
{
|
|
565
|
-
uploadCompleted ?
|
|
566
|
-
<div className="flex align-items-center gap-2 text-sm">
|
|
567
|
-
{totalSize} of {totalSize}
|
|
568
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" fill="none">
|
|
569
|
-
<circle cx="2" cy="2" r="2" fill="#C1C1C1" />
|
|
570
|
-
</svg>
|
|
571
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
|
|
572
|
-
<mask id="mask0_2480_8635" style={{ maskType: 'alpha' }} maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20">
|
|
573
|
-
<rect width="20" height="20" fill="#D9D9D9" />
|
|
574
|
-
</mask>
|
|
575
|
-
<g mask="url(#mask0_2480_8635)">
|
|
576
|
-
<path d="M9.16 12.76L13.39 8.53L12.55 7.69L9.16 11.08L7.45 9.37L6.61 10.21L9.16 12.76ZM10 16C9.17 16 8.39 15.8424 7.66 15.5272C6.93 15.2124 6.295 14.785 5.755 14.245C5.215 13.705 4.7876 13.07 4.4728 12.34C4.1576 11.61 4 10.83 4 10C4 9.17 4.1576 8.39 4.4728 7.66C4.7876 6.93 5.215 6.295 5.755 5.755C6.295 5.215 6.93 4.7874 7.66 4.4722C8.39 4.1574 9.17 4 10 4C10.83 4 11.61 4.1574 12.34 4.4722C13.07 4.7874 13.705 5.215 14.245 5.755C14.785 6.295 15.2124 6.93 15.5272 7.66C15.8424 8.39 16 9.17 16 10C16 10.83 15.8424 11.61 15.5272 12.34C15.2124 13.07 14.785 13.705 14.245 14.245C13.705 14.785 13.07 15.2124 12.34 15.5272C11.61 15.8424 10.83 16 10 16Z" fill="#722ED1" />
|
|
577
|
-
</g>
|
|
578
|
-
</svg>
|
|
579
|
-
Completed
|
|
580
|
-
</div>
|
|
581
|
-
:
|
|
582
|
-
<div className="flex align-items-center gap-2 text-sm">
|
|
583
|
-
{uploadedSize} of {totalSize}
|
|
584
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" fill="none">
|
|
585
|
-
<circle cx="2" cy="2" r="2" fill="#C1C1C1" />
|
|
586
|
-
</svg>
|
|
587
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
|
|
588
|
-
<path d="M7.375 10.5V5.40625L5.75 7.03125L4.875 6.125L8 3L11.125 6.125L10.25 7.03125L8.625 5.40625V10.5H7.375ZM4.25 13C3.90625 13 3.61198 12.8776 3.36719 12.6328C3.1224 12.388 3 12.0938 3 11.75V9.875H4.25V11.75H11.75V9.875H13V11.75C13 12.0938 12.8776 12.388 12.6328 12.6328C12.388 12.8776 12.0938 13 11.75 13H4.25Z" fill="black" />
|
|
589
|
-
</svg>
|
|
590
|
-
Uploading ${uploadProgress}% Completed
|
|
591
|
-
</div>
|
|
592
|
-
}
|
|
545
|
+
{isFormFieldValid(formik, "menuIconUrl") && (
|
|
546
|
+
<Message severity="error" text={formik?.errors?.menuIconUrl?.toString()} />
|
|
547
|
+
)}
|
|
548
|
+
|
|
549
|
+
{fileDetails && (
|
|
550
|
+
<div className="solid-file-upload-wrapper">
|
|
551
|
+
<div className="flex align-items-center gap-2">
|
|
552
|
+
<FileReaderExt fileDetails={fileDetails} />
|
|
553
|
+
<div className="w-full flex flex-column gap-1">
|
|
554
|
+
<div className="flex align-items-center justify-content-between">
|
|
555
|
+
<div className="font-bold">{fileDetails.name}</div>
|
|
556
|
+
<div className="cancel-upload-button" onClick={handleCancelUpload}>
|
|
557
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="6" height="6" viewBox="0 0 6 6" fill="none">
|
|
558
|
+
<path d="M0.6 6L0 5.4L2.4 3L0 0.6L0.6 0L3 2.4L5.4 0L6 0.6L3.6 3L6 5.4L5.4 6L3 3.6L0.6 6Z" fill="#4B4D52" />
|
|
559
|
+
</svg>
|
|
593
560
|
</div>
|
|
594
561
|
</div>
|
|
595
|
-
|
|
562
|
+
{
|
|
563
|
+
uploadCompleted ?
|
|
564
|
+
<div className="flex align-items-center gap-2 text-sm">
|
|
565
|
+
{totalSize} of {totalSize}
|
|
566
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" fill="none">
|
|
567
|
+
<circle cx="2" cy="2" r="2" fill="#C1C1C1" />
|
|
568
|
+
</svg>
|
|
569
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
|
|
570
|
+
<mask id="mask0_2480_8635" style={{ maskType: 'alpha' }} maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20">
|
|
571
|
+
<rect width="20" height="20" fill="#D9D9D9" />
|
|
572
|
+
</mask>
|
|
573
|
+
<g mask="url(#mask0_2480_8635)">
|
|
574
|
+
<path d="M9.16 12.76L13.39 8.53L12.55 7.69L9.16 11.08L7.45 9.37L6.61 10.21L9.16 12.76ZM10 16C9.17 16 8.39 15.8424 7.66 15.5272C6.93 15.2124 6.295 14.785 5.755 14.245C5.215 13.705 4.7876 13.07 4.4728 12.34C4.1576 11.61 4 10.83 4 10C4 9.17 4.1576 8.39 4.4728 7.66C4.7876 6.93 5.215 6.295 5.755 5.755C6.295 5.215 6.93 4.7874 7.66 4.4722C8.39 4.1574 9.17 4 10 4C10.83 4 11.61 4.1574 12.34 4.4722C13.07 4.7874 13.705 5.215 14.245 5.755C14.785 6.295 15.2124 6.93 15.5272 7.66C15.8424 8.39 16 9.17 16 10C16 10.83 15.8424 11.61 15.5272 12.34C15.2124 13.07 14.785 13.705 14.245 14.245C13.705 14.785 13.07 15.2124 12.34 15.5272C11.61 15.8424 10.83 16 10 16Z" fill="#722ED1" />
|
|
575
|
+
</g>
|
|
576
|
+
</svg>
|
|
577
|
+
Completed
|
|
578
|
+
</div>
|
|
579
|
+
:
|
|
580
|
+
<div className="flex align-items-center gap-2 text-sm">
|
|
581
|
+
{uploadedSize} of {totalSize}
|
|
582
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" fill="none">
|
|
583
|
+
<circle cx="2" cy="2" r="2" fill="#C1C1C1" />
|
|
584
|
+
</svg>
|
|
585
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
|
|
586
|
+
<path d="M7.375 10.5V5.40625L5.75 7.03125L4.875 6.125L8 3L11.125 6.125L10.25 7.03125L8.625 5.40625V10.5H7.375ZM4.25 13C3.90625 13 3.61198 12.8776 3.36719 12.6328C3.1224 12.388 3 12.0938 3 11.75V9.875H4.25V11.75H11.75V9.875H13V11.75C13 12.0938 12.8776 12.388 12.6328 12.6328C12.388 12.8776 12.0938 13 11.75 13H4.25Z" fill="black" />
|
|
587
|
+
</svg>
|
|
588
|
+
Uploading ${uploadProgress}% Completed
|
|
589
|
+
</div>
|
|
590
|
+
}
|
|
596
591
|
</div>
|
|
597
|
-
|
|
592
|
+
</div>
|
|
593
|
+
<ProgressBar value={uploadProgress} showValue={false} style={{ height: 4 }} className="mt-2" />
|
|
598
594
|
</div>
|
|
599
|
-
|
|
595
|
+
)}
|
|
600
596
|
</div>
|
|
601
597
|
</div>
|
|
602
598
|
</div>
|
|
603
599
|
</form>
|
|
600
|
+
<div style={{ width: '22.5%' }}>
|
|
601
|
+
</div>
|
|
604
602
|
</div>
|
|
605
603
|
);
|
|
606
604
|
};
|
|
@@ -80,6 +80,36 @@ const AppSidebar = () => {
|
|
|
80
80
|
};
|
|
81
81
|
}, [isSearchShow]);
|
|
82
82
|
|
|
83
|
+
const additionalMenu = {
|
|
84
|
+
title: "General Settings",
|
|
85
|
+
key: "general-settings",
|
|
86
|
+
children: [
|
|
87
|
+
{
|
|
88
|
+
title: "Settings",
|
|
89
|
+
path: "",
|
|
90
|
+
key: "settings-menu-item",
|
|
91
|
+
children: [
|
|
92
|
+
{
|
|
93
|
+
title: "App Settings",
|
|
94
|
+
path: "/admin/settings/app-settings",
|
|
95
|
+
key: "app-setting"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
title: "Authentication Settings",
|
|
99
|
+
path: "/admin/settings/authentication-settings",
|
|
100
|
+
key: "auth-setting"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
title: "Misc",
|
|
104
|
+
path: "/admin/settings/misc-settings",
|
|
105
|
+
key: "misc-setting"
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
icon: "/images/Navigation/settings.png" // Default icon (optional)
|
|
111
|
+
};
|
|
112
|
+
const updatedMenuData = menu?.data ? [...menu.data, additionalMenu] : [additionalMenu];
|
|
83
113
|
|
|
84
114
|
|
|
85
115
|
return (
|
|
@@ -91,7 +121,7 @@ const AppSidebar = () => {
|
|
|
91
121
|
<div
|
|
92
122
|
className={`sidebar-toggle-button ${!visibleNavbar ? "s-collapsed" : ""}`}
|
|
93
123
|
onClick={handleToggle}
|
|
94
|
-
|
|
124
|
+
// severity="secondary"
|
|
95
125
|
>
|
|
96
126
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
97
127
|
<rect x="0.3" y="0.3" width="23.4" height="23.4" rx="2.1" fill="white" />
|
|
@@ -104,7 +134,7 @@ const AppSidebar = () => {
|
|
|
104
134
|
|
|
105
135
|
<div className="sidebar-left">
|
|
106
136
|
<div className="navbar-menu">
|
|
107
|
-
{
|
|
137
|
+
{updatedMenuData.length > 0 && updatedMenuData.map((m: any) => (
|
|
108
138
|
<div
|
|
109
139
|
key={m.title}
|
|
110
140
|
className={`menu-item ${currentMainMenu === m.title ? "active-menu-image" : ""}`}
|
|
@@ -112,20 +142,15 @@ const AppSidebar = () => {
|
|
|
112
142
|
<a onClick={() => handleMenu(m)}>
|
|
113
143
|
{m.icon ?
|
|
114
144
|
<img
|
|
115
|
-
style={{ cursor: "pointer", width: '30px'
|
|
116
|
-
// src={currentMainMenu === m.title ? `/images/${m.title.toLocaleLowerCase()}-active.svg` : `/images/${m.title.toLocaleLowerCase()}.svg`}
|
|
117
|
-
// src={`/images/menu/${m.title}.svg`}
|
|
145
|
+
style={{ cursor: "pointer", width: '30px', mixBlendMode: "multiply" }}
|
|
118
146
|
src={(m.icon && m.icon.startsWith("/")) ? m.icon : `${process.env.API_URL}/${m.icon}`}
|
|
119
|
-
|
|
120
|
-
alt="Solid"
|
|
147
|
+
alt={m.title}
|
|
121
148
|
/>
|
|
122
149
|
:
|
|
123
150
|
<img
|
|
124
151
|
style={{ cursor: "pointer", width: '30px' }}
|
|
125
|
-
// src={currentMainMenu === m.title ? `/images/${m.title.toLocaleLowerCase()}-active.svg` : `/images/${m.title.toLocaleLowerCase()}.svg`}
|
|
126
|
-
// src={`/images/menu/${m.title}.svg`}
|
|
127
152
|
src={`/images/menu/app-builder.svg`}
|
|
128
|
-
alt=
|
|
153
|
+
alt={m.title}
|
|
129
154
|
/>
|
|
130
155
|
}
|
|
131
156
|
</a>
|
|
@@ -11,8 +11,13 @@ const NavbarTwoMenu = ({ menuItems }: any) => {
|
|
|
11
11
|
const [expandedKeys, setExpandedKeys] = useState<any>({});
|
|
12
12
|
const itemRenderer = (item: any, options: any) => {
|
|
13
13
|
const currentItem = item?.url?.split('/').slice(-2, -1)[0];
|
|
14
|
+
const isSettingsPage = pathname.includes('/settings/') && item?.url?.includes('/settings/')
|
|
15
|
+
? pathname === item?.url // Exact match check for settings pages
|
|
16
|
+
: currentItem === activeParentPath
|
|
17
|
+
|
|
18
|
+
// currentItem === activeParentPath ?' p-highlight' : ''
|
|
14
19
|
return (
|
|
15
|
-
<div key={item?.key} className={`flex align-items-center cursor-pointer menuHead px-3 ${
|
|
20
|
+
<div key={item?.key} className={`flex align-items-center cursor-pointer menuHead px-3 ${isSettingsPage ? ' p-highlight' : ''}`} onClick={options.onClick}>
|
|
16
21
|
<Link href={item?.url ? item?.url : '#'} className="w-full flex justify-content-between font-medium">
|
|
17
22
|
<div className="flex align-items-center gap-3">
|
|
18
23
|
<span className={item.icon} />
|
|
@@ -11,6 +11,8 @@ import { toggleTheme } from "@/redux/features/themeSlice";
|
|
|
11
11
|
import { InputSwitch } from "primereact/inputswitch";
|
|
12
12
|
import { Button } from "primereact/button";
|
|
13
13
|
import { useRouter } from "next/navigation";
|
|
14
|
+
import { Dialog } from "primereact/dialog";
|
|
15
|
+
import { Divider } from "primereact/divider";
|
|
14
16
|
|
|
15
17
|
const UserProfileMenu = () => {
|
|
16
18
|
const router = useRouter();
|
|
@@ -18,9 +20,10 @@ const UserProfileMenu = () => {
|
|
|
18
20
|
// const { user } = useAppSelector((state) => state.auth);
|
|
19
21
|
const { changeTheme } = useContext(PrimeReactContext);
|
|
20
22
|
const { layoutConfig, setLayoutConfig } = useContext(LayoutContext);
|
|
21
|
-
const { theme } = useSelector((state:any) => state.theme); // Get current theme from Redux
|
|
22
|
-
const { user } = useSelector((state:any) => state.auth);
|
|
23
|
+
const { theme } = useSelector((state: any) => state.theme); // Get current theme from Redux
|
|
24
|
+
const { user } = useSelector((state: any) => state.auth);
|
|
23
25
|
const [checked, setChecked] = useState(theme === "dark");
|
|
26
|
+
const [confirmLogout, setConfirmLogout] = useState(false);
|
|
24
27
|
const dispatch = useDispatch();
|
|
25
28
|
const op = useRef(null);
|
|
26
29
|
const logoutHandler = () => {
|
|
@@ -79,9 +82,6 @@ const UserProfileMenu = () => {
|
|
|
79
82
|
</div>
|
|
80
83
|
<InputSwitch checked={checked} onChange={handleThemeToggle} />
|
|
81
84
|
</div>
|
|
82
|
-
<div className="p-2">
|
|
83
|
-
<Button icon="pi pi-cog" label="General Settings" size="small" text severity="secondary" className="w-full text-left gap-2" onClick={()=>router.push("/admin/settings") }/>
|
|
84
|
-
</div>
|
|
85
85
|
<div className="user-profile-body p-3">
|
|
86
86
|
<Button
|
|
87
87
|
text
|
|
@@ -92,13 +92,25 @@ const UserProfileMenu = () => {
|
|
|
92
92
|
<path d="M3.75 15.75C3.3375 15.75 2.98438 15.6031 2.69063 15.3094C2.39687 15.0156 2.25 14.6625 2.25 14.25V3.75C2.25 3.3375 2.39687 2.98438 2.69063 2.69063C2.98438 2.39687 3.3375 2.25 3.75 2.25H9V3.75H3.75V14.25H9V15.75H3.75ZM12 12.75L10.9688 11.6625L12.8813 9.75H6.75V8.25H12.8813L10.9688 6.3375L12 5.25L15.75 9L12 12.75Z" fill="#F04A4A" />
|
|
93
93
|
</svg>
|
|
94
94
|
}
|
|
95
|
-
onClick={
|
|
95
|
+
onClick={() => setConfirmLogout(true)}
|
|
96
96
|
label="Logout"
|
|
97
97
|
/>
|
|
98
98
|
</div>
|
|
99
99
|
</OverlayPanel>
|
|
100
|
-
</div
|
|
101
|
-
|
|
100
|
+
</div>
|
|
101
|
+
<Dialog header="Logout" headerClassName="py-2" contentClassName="px-0 pb-0" visible={confirmLogout} style={{ width: '20vw' }} onHide={() => { if (!confirmLogout) return; setConfirmLogout(false); }}>
|
|
102
|
+
<Divider className="m-0" />
|
|
103
|
+
<div className="p-4">
|
|
104
|
+
<p className="m-0 solid-primary-title" style={{ fontSize: 16 }}>
|
|
105
|
+
Are you sure you want to log out?
|
|
106
|
+
</p>
|
|
107
|
+
<div className="flex align-items-center gap-2 mt-3">
|
|
108
|
+
<Button label="Logout" size="small" onClick={e => logoutHandler()} />
|
|
109
|
+
<Button label="Cancel" size="small" onClick={() => setConfirmLogout(false)} outlined />
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
</Dialog>
|
|
113
|
+
</div>
|
|
102
114
|
);
|
|
103
115
|
};
|
|
104
116
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
export const AppTitle = ({ title }: { title: any }) => {
|
|
4
|
+
const appTitle = title ? title?.data?.appTitle : "Solid Starters";
|
|
5
|
+
return (
|
|
6
|
+
<div>
|
|
7
|
+
<p className="solid-logo-title">
|
|
8
|
+
{appTitle?.split(" ").map((word: string, index: number) => (
|
|
9
|
+
<div key={index}>{word}</div>
|
|
10
|
+
))}
|
|
11
|
+
</p>
|
|
12
|
+
</div>
|
|
13
|
+
)
|
|
14
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -366,6 +366,7 @@ export type { Product } from '@/components/tables/ListViewTable';
|
|
|
366
366
|
|
|
367
367
|
export { ToastContainer, handleError, handleSuccess } from '@/helpers/ToastContainer';
|
|
368
368
|
export { getAuthCookieName, getAuthHeader } from '@/helpers/authHeader';
|
|
369
|
+
export { AppTitle } from '@/helpers/AppTitle'
|
|
369
370
|
// export * from '@/helpers/countries';
|
|
370
371
|
export { addCommasToAmount, calculateDaysOfStay, getSingularAndPlural } from '@/helpers/helpers';
|
|
371
372
|
// export * from '@/helpers/menu';
|
|
@@ -417,7 +418,7 @@ export { revalidateTag } from '@/helpers/revalidate';
|
|
|
417
418
|
// │ └── userSlice.ts
|
|
418
419
|
// ├── hooks.ts
|
|
419
420
|
// export * from '@/redux/api/articleApi';
|
|
420
|
-
export { authApi, useForgotPasswordMutation, useRegisterMutation, useRegisterPrivateMutation, useResetPasswordMutation, useUpdateUserMutation
|
|
421
|
+
export { authApi, useForgotPasswordMutation, useRegisterMutation, useRegisterPrivateMutation, useResetPasswordMutation, useUpdateUserMutation, useInitateLoginMutation, useConfirmOtpLoginMutation, useInitateRegisterMutation, useConfirmOtpRegisterMutation, } from '@/redux/api/authApi';
|
|
421
422
|
// export * from '@/redux/api/automationApi';
|
|
422
423
|
// export * from '@/redux/api/categoryApi';
|
|
423
424
|
// export * from '@/redux/api/cityApi';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterComponent.d.ts","sourceRoot":"","sources":["../../../src/components/common/FilterComponent.tsx"],"names":[],"mappings":"AAuRA,QAAA,MAAM,eAAe,+CAkJpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|