sales-frontend-components 0.0.92 → 0.0.94

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/index.d.ts CHANGED
@@ -255,6 +255,7 @@ declare function useJobVehicleSearchModal(): {
255
255
  riskGrade: string;
256
256
  hospitalizationGrade: string;
257
257
  openJobVehicleModal: () => void;
258
+ closeJobVehicleModal: () => void;
258
259
  JobVehicleSearchModalComponent: react_jsx_runtime.JSX.Element;
259
260
  };
260
261
 
@@ -306,7 +307,7 @@ interface UseRemoteIdentityVerificationProps {
306
307
  rivSearchParams?: RivUrlParams;
307
308
  apiConfig?: ApiConfig;
308
309
  onSuccess?: (result: VerificationResponse['args'], remoteIdentityVerificationSuccess: RemoteIdentityVerificationSuccess) => void;
309
- onError?: (result: VerificationResponse['args']) => void;
310
+ onError?: (result: VerificationResponse['args'], remoteIdentityVerificationSuccess: RemoteIdentityVerificationSuccess) => void;
310
311
  onCancel?: (result: VerificationResponse['args']) => void;
311
312
  }
312
313
 
package/dist/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import { useController } from 'react-hook-form';
3
- import { CheckboxButton, Checkbox, isDate, DatePicker, DateRangePicker, Table, Accordion, Radio, FormField, Select, Tab, useModalState, Modal, Button, SegmentGroup, ModalUtils, FormCore, RadioGroup, useDropDown, List, ListItem, Loading } from 'sales-frontend-design-system';
3
+ import { CheckboxButton, Checkbox, isDate, DatePicker, DateRangePicker, Table, Accordion, Radio, FormField, Select, Tab, useModalState, Modal, Button, ModalUtils, SegmentGroup, FormCore, RadioGroup, useDropDown, List, ListItem, Loading } from 'sales-frontend-design-system';
4
4
  import React, { useState, useEffect, useRef, useCallback, useMemo } from 'react';
5
5
  import { useSearchOccupationDetailQuery, useSearchOccupationQuery, useSearchAddressQuery, useSearchPostalCodeQuery, useSearchAddressStandardizationQuery, useSearchCommonCodeQuery, useSearchOrganizationQuery, useSearchEmployeeProfileQuery, useSearchVehicleQuery, useSearchRiskGradeQuery, getDspCustomerListMethod, useSearchCustomerListQuery, getRemoteIdentityVerificationSystemToken } from 'sales-frontend-api/method';
6
6
  import { IconMainUiSearch, IconIllustCamera, IconGraphicsBankSaneop, IconGraphicsBankKiup, IconGraphicsBankKukmin, IconGraphicsBankSuhyeop, IconGraphicsBankJangGiSinYong, IconGraphicsBankNhNonghyeop, IconGraphicsBankJiyeokNonghyeop, IconGraphicsBankWoori, IconGraphicsBankScJeil, IconGraphicsBankSinhan, IconGraphicsBankHankookCity, IconGraphicsBankDaegu, IconGraphicsBankBusan, IconGraphicsBankGwangju, IconGraphicsBankJeju, IconGraphicsBankJeonbuk, IconGraphicsBankGyeongnam, IconGraphicsBankSaemaulGeumgo, IconGraphicsBankSinhyeop, IconGraphicsBankJeochuk, IconGraphicsBankHsbc, IconGraphicsBankABNAMRO, IconGraphicsBankSanlim, IconGraphicsBankPost, IconGraphicsBankKebHana, IconGraphicsBankKBank, IconGraphicsBankKakaoBank, IconGraphicsBankTossBank, IconGraphicsStockYuantaJeungkwon, IconGraphicsStockKbJeungkwon, IconGraphicsStockMiraeAssetJeungkwon, IconGraphicsStockSamsungJeungkwon, IconGraphicsStockHankookTujajeungkwon, IconGraphicsStockNhWooriTujajeungkwon, IconGraphicsStockGyoboJeungkwon, IconGraphicsStockHiTujajeungkwon, IconGraphicsStockHyundaiChaJeungkwon, IconGraphicsStockKiwoomJeungkwon, IconGraphicsStockSkJeungkwon, IconGraphicsStockDaesinJeungkwon, IconGraphicsStockHanwhaTujajeungkwon, IconGraphicsStockHanaGeumyungTujajeungkwon, IconGraphicsStockSinhanTujajeungkwon, IconGraphicsStockDbGeumyungTujajeungkwon, IconGraphicsStockYujinTujajeungkwon, IconGraphicsStockMeritzJeungkwon, IconGraphicsStockKakaoPayJeungkwon, IconGraphicsStockNhTujajeungkwon, IconGraphicsStockBugukJeungkwon, IconGraphicsStockSinyeongJeungkwon, IconGraphicsStockHochulEopsum, IconGraphicsFeedbackEmpty, IconIllustGrade, IconIllustJob, IconSubUiArrowRight, IconIllustVehicle } from 'sales-frontend-assets';
@@ -99,12 +99,15 @@ const FormDateRangePicker = ({
99
99
  });
100
100
  const [selected, setSelected] = React.useState();
101
101
  React.useEffect(() => {
102
- if (isDate(field.value) && !selected) {
103
- setSelected(field.value);
102
+ const fieldValue = field.value;
103
+ if (!fieldValue) {
104
+ setSelected(void 0);
105
+ return;
104
106
  }
105
- if (isDate(field.value) && selected && (field.value.startDate.getTime() !== selected.startDate?.getTime() || field.value.endDate.getTime() !== selected.endDate?.getTime())) {
106
- setSelected(field.value);
107
- console.warn(field.value, selected);
107
+ const isStartDateDifferent = fieldValue.startDate?.getTime() !== selected?.startDate?.getTime();
108
+ const isEndDateDifferent = fieldValue.endDate?.getTime() !== selected?.endDate?.getTime();
109
+ if (!selected || isStartDateDifferent || isEndDateDifferent) {
110
+ setSelected(fieldValue);
108
111
  }
109
112
  }, [field.value]);
110
113
  return /* @__PURE__ */ jsx(
@@ -684,6 +687,15 @@ function useJobSearchModal() {
684
687
  setActiveTab("jobName");
685
688
  openModal();
686
689
  };
690
+ const closeModalWithCheck = () => {
691
+ if (!selectedJob) {
692
+ ModalUtils.alert("\uC9C1\uC885\uC744 \uC120\uD0DD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uC9C1\uC885 \uC120\uD0DD \uD6C4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574\uC8FC\uC138\uC694.", "\uC9C1\uC885\uC744 \uC120\uD0DD\uD574\uC8FC\uC138\uC694.", {
693
+ modalId: "job-search-alert-no-selected"
694
+ });
695
+ return;
696
+ }
697
+ closeModal();
698
+ };
687
699
  return {
688
700
  JobSearchModal: /* @__PURE__ */ jsxs(Modal.Root, { isOpen, onClose: closeModal, modalSize: "xlarge", children: [
689
701
  /* @__PURE__ */ jsx(Modal.Overlay, {}),
@@ -716,8 +728,7 @@ function useJobSearchModal() {
716
728
  size: "medium",
717
729
  appearance: "filled",
718
730
  width: "full",
719
- onClick: closeModal,
720
- disabled: !selectedJob,
731
+ onClick: closeModalWithCheck,
721
732
  children: "\uD655\uC778"
722
733
  }
723
734
  ) })
@@ -2721,7 +2732,7 @@ function useJobVehicleSearchModal() {
2721
2732
  hospitalizationGrade,
2722
2733
  resetJobVehicleSearch
2723
2734
  } = useJobVehicleSearch();
2724
- const { isOpen, openModal, closeModal } = useModalState({ initialValue: true });
2735
+ const { isOpen, openModal, closeModal } = useModalState();
2725
2736
  const validate = () => {
2726
2737
  if (!selectedJob && !selectedVehicle) {
2727
2738
  return ModalUtils.alert(
@@ -2754,6 +2765,7 @@ function useJobVehicleSearchModal() {
2754
2765
  riskGrade,
2755
2766
  hospitalizationGrade,
2756
2767
  openJobVehicleModal: openInitModal,
2768
+ closeJobVehicleModal: closeModal,
2757
2769
  JobVehicleSearchModalComponent: /* @__PURE__ */ jsxs(Modal.Root, { isOpen, onClose: closeModal, modalSize: "xlarge", children: [
2758
2770
  /* @__PURE__ */ jsx(Modal.Overlay, {}),
2759
2771
  /* @__PURE__ */ jsxs(Modal.Content, { style: { height: "697px" }, children: [
@@ -3177,7 +3189,7 @@ const useRemoteIdentityVerification = ({
3177
3189
  case VERIFICATION_CODES.ATTEMPT_EXCEEDED:
3178
3190
  case VERIFICATION_CODES.SERVER_ERROR:
3179
3191
  console.log("=====\uBE44\uB300\uBA74\uC778\uC99D \uC2E4\uD328!=====", { result, code });
3180
- onError?.({ result, code });
3192
+ onError?.({ result, code }, { rivsRqstId });
3181
3193
  cleanup?.();
3182
3194
  break;
3183
3195
  case VERIFICATION_CODES.SUCCESS:
@@ -3229,6 +3241,13 @@ const useRemoteIdentityVerificationIframe = (config) => {
3229
3241
  } catch (error) {
3230
3242
  console.error("openRivIframe error::", error);
3231
3243
  await ModalUtils.alert("\uBE44\uB300\uBA74 \uC778\uC99D URL \uC0DD\uC131\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD574\uC8FC\uC138\uC694.");
3244
+ config.onError?.(
3245
+ {
3246
+ result: "N",
3247
+ code: VERIFICATION_CODES.TOKEN_ERROR
3248
+ },
3249
+ { rivsRqstId: "" }
3250
+ );
3232
3251
  }
3233
3252
  };
3234
3253
  const closeRivIframe = () => {