From c91470b4db7cf41d0ae6a781ab2e130908266f40 Mon Sep 17 00:00:00 2001 From: Drey Millena Date: Fri, 11 Dec 2020 02:14:34 +0800 Subject: [PATCH] initial files for this repo --- .env | 15 + .flowconfig | 12 + .gitlab-ci.yml | 40 + Dockerfile | 30 + Makefile | 54 + README.md | 87 +- conf/conf.d/default.conf | 133 + config-overrides.js | 491 + docker-compose-prod.yml | 25 + docker-compose-public.yml | 24 + docker-compose.yml | 80 + jsconfig.json | 12 + json-server/db.json | 278 + package.json | 65 + public/favicon.ico | Bin 0 -> 3870 bytes public/favicon_unioil.ico | Bin 0 -> 16958 bytes public/index.html | 69 + public/manifest.json | 15 + src/App.js | 215 + src/App.test.js | 9 + src/actions/index.js | 6 + src/assets/img/bg_cms.png | Bin 0 -> 229484 bytes src/assets/img/ic_error.svg | 1 + src/assets/img/ic_success.svg | 1 + src/assets/img/logo_unioil.png | Bin 0 -> 8260 bytes src/components/CustomTable/index.js | 683 + .../Layout/components/HeaderDropdown.js | 90 + .../Layout/components/MainBreadcrumbs.js | 75 + .../Layout/components/MainContent.js | 36 + .../Dashboard/Layout/components/MainFooter.js | 19 + .../Dashboard/Layout/components/MainHeader.js | 83 + .../Layout/components/MainSidebar.js | 262 + src/components/Dashboard/Layout/index.js | 107 + src/components/Dashboard/Routes/index.js | 31 + src/components/DataDisplay/List.js | 48 + src/components/DataDisplay/index.js | 5 + src/components/Dropdown/DropdownExport.js | 66 + src/components/Dropdown/index.js | 1 + src/components/Forms/AdvanceSearchFilter.js | 69 + src/components/Forms/AntdForms.js | 47 + src/components/Forms/Cascader.js | 67 + src/components/Forms/Checkbox.js | 55 + src/components/Forms/DatePicker.js | 160 + src/components/Forms/HeaderForm.js | 145 + src/components/Forms/InputMaskNumber.js | 37 + src/components/Forms/InputNumberAntD.js | 71 + src/components/Forms/InputPassword.js | 31 + src/components/Forms/InputTextArea.js | 67 + src/components/Forms/Inputs.js | 93 + src/components/Forms/MultiSelect.js | 86 + src/components/Forms/MultiSelectOptions.js | 69 + src/components/Forms/Radio.js | 84 + src/components/Forms/Select.js | 91 + src/components/Forms/SingleUploadImage.js | 185 + src/components/Forms/TimePicker.js | 71 + src/components/Forms/UploadImage.js | 201 + src/components/Forms/index.js | 33 + src/components/Loading/index.js | 16 + src/components/Login/Layout/index.js | 23 + src/components/Login/Routes/index.js | 16 + src/components/Modal/ModalCancel.js | 84 + src/components/Page404/404.js | 17 + src/components/PageError/403.js | 18 + src/components/PageError/404.js | 17 + src/components/PageError/index.js | 2 + src/components/StationTables/index.js | 445 + src/components/TableGrid/TableLayout.js | 324 + src/components/Tables/AdvanceTable.js | 427 + src/components/Tables/index.css | 4 + src/constants/Response.js | 67 + src/constants/Types.js | 8 + src/constants/global.js | 5 + src/constants/validation.js | 71 + .../Create/components/AddCardForm.js | 205 + .../private/AboutUs/CardTypes/Create/index.js | 191 + .../CardTypes/Create/validationSchema.js | 39 + .../CardTypes/Edit/components/EditCardForm.js | 204 + .../private/AboutUs/CardTypes/Edit/index.js | 196 + .../CardTypes/Edit/validationSchema.js | 40 + .../private/AboutUs/CardTypes/List/index.js | 109 + .../CardTypes/View/components/ViewCardForm.js | 103 + .../private/AboutUs/CardTypes/View/index.js | 95 + .../components/AddUserManagementForm.js | 83 + .../AboutUs/TermAndPrivacy/Create/index.js | 117 + .../TermAndPrivacy/Create/validationSchema.js | 18 + .../Edit/components/EditUserManagementForm.js | 82 + .../AboutUs/TermAndPrivacy/Edit/index.js | 135 + .../TermAndPrivacy/Edit/validationSchema.js | 16 + .../AboutUs/TermAndPrivacy/List/index.js | 130 + .../View/components/ViewUserManagementForm.js | 55 + .../AboutUs/TermAndPrivacy/View/index.js | 94 + src/containers/private/AboutUs/index.js | 137 + .../Create/components/AddPhotoSliderForm.js | 254 + .../HomePage/PhotoSlider/Create/index.js | 266 + .../PhotoSlider/Create/validationSchema.js | 28 + .../Edit/components/EditPhotoSliderForm.js | 236 + .../HomePage/PhotoSlider/Edit/index.js | 331 + .../PhotoSlider/Edit/validationSchema.js | 28 + .../HomePage/PhotoSlider/List/index.js | 230 + .../View/components/ViewPhotoSliderForm.js | 94 + .../HomePage/PhotoSlider/View/index.js | 96 + .../private/HomePage/PhotoSlider/index.js | 72 + .../MemberManagement/CardMember/List/index.js | 133 + .../View/components/CardMemberViewForm.js | 82 + .../MemberManagement/CardMember/View/index.js | 67 + .../LockAccount/List/index.js | 127 + .../View/components/LockAccountViewForm.js | 80 + .../LockAccount/View/index.js | 91 + .../private/MemberManagement/index.js | 86 + .../private/MyProfile/View/MyProfileView.js | 62 + src/containers/private/MyProfile/index.js | 60 + .../Create/components/AddNotificationForm.js | 107 + .../private/Notifications/Create/index.js | 120 + .../private/Notifications/Create/reducer.js | 33 + .../private/Notifications/Create/saga.js | 53 + .../Notifications/Create/validationSchema.js | 42 + .../private/Notifications/List/index.js | 228 + src/containers/private/Notifications/index.js | 70 + .../Create/components/AddPromotionForm.js | 220 + .../private/Promotions/Create/index.js | 253 + .../Promotions/Create/validationSchema.js | 35 + .../Edit/components/EditUserManagementForm.js | 227 + .../private/Promotions/Edit/index.js | 299 + .../Promotions/Edit/validationSchema.js | 34 + .../private/Promotions/List/index.js | 143 + .../View/components/ViewPromotionsForm.js | 124 + .../private/Promotions/View/index.js | 95 + src/containers/private/Promotions/index.js | 70 + .../Reports/MobileUsageReport/List/index.js | 100 + .../Reports/RegistrationReport/List/index.js | 93 + .../Reports/StationRatingReport/List/index.js | 104 + .../Reports/TopUpUsageReport/List/index.js | 90 + src/containers/private/Reports/index.js | 97 + .../StationLocator/Branches/Create/index.js | 118 + .../StationLocator/Branches/Create/reducer.js | 33 + .../StationLocator/Branches/Create/saga.js | 51 + .../StationLocator/Branches/Edit/index.js | 120 + .../StationLocator/Branches/List/index.js | 150 + .../private/StationLocator/Branches/index.js | 54 + .../StationLocator/Fuels/Create/index.js | 116 + .../StationLocator/Fuels/Create/reducer.js | 34 + .../StationLocator/Fuels/Create/saga.js | 54 + .../StationLocator/Fuels/Edit/index.js | 111 + .../StationLocator/Fuels/List/index.js | 118 + .../private/StationLocator/Fuels/index.js | 54 + .../StationLocator/Location/Create/index.js | 132 + .../StationLocator/Location/Create/reducer.js | 33 + .../StationLocator/Location/Create/saga.js | 51 + .../StationLocator/Location/Edit/index.js | 465 + .../StationLocator/Location/Edit/reducer.js | 33 + .../StationLocator/Location/Edit/saga.js | 52 + .../StationLocator/Location/List/index.js | 175 + .../Location/components/HeaderForm.js | 50 + .../Location/components/LocationModal.js | 74 + .../Location/components/UploadPricesModal.js | 312 + .../Location/components/editStationForm.js | 221 + .../Location/components/stationForm.js | 415 + .../private/StationLocator/Location/index.js | 54 + .../Location/validationSchema.js | 31 + .../StationLocator/components/branchSchema.js | 39 + .../StationLocator/components/branchesForm.js | 118 + .../StationLocator/components/fuelSchema.js | 6 + .../StationLocator/components/fuelsForm.js | 94 + .../components/CreateSystemPreferencesForm.js | 188 + .../private/SystemPreferences/Create/index.js | 264 + .../SystemPreferences/Create/reducer.js | 27 + .../private/SystemPreferences/Create/saga.js | 34 + .../Create/validationSchema.js | 29 + .../private/SystemPreferences/index.js | 61 + .../Create/components/TopUpCreateForm.js | 122 + src/containers/private/TopUp/Create/index.js | 155 + .../private/TopUp/Create/validationSchema.js | 18 + .../Edit/components/EditUserManagementForm.js | 124 + src/containers/private/TopUp/Edit/index.js | 145 + .../private/TopUp/Edit/validationSchema.js | 18 + src/containers/private/TopUp/List/index.js | 116 + .../TopUp/View/components/ViewTopUpForm.js | 54 + src/containers/private/TopUp/View/index.js | 93 + src/containers/private/TopUp/index.js | 85 + .../components/AddUserManagementForm.js | 161 + .../private/UserManagement/Create/index.js | 149 + .../private/UserManagement/Create/reducer.js | 33 + .../private/UserManagement/Create/saga.js | 53 + .../UserManagement/Create/validationSchema.js | 42 + .../Edit/components/EditUserManagementForm.js | 169 + .../private/UserManagement/Edit/index.js | 206 + .../UserManagement/Edit/validationSchema.js | 40 + .../private/UserManagement/List/index.js | 187 + .../View/components/ViewUserManagementForm.js | 87 + .../private/UserManagement/View/index.js | 97 + .../UserManagement/View/validationSchema.js | 17 + .../private/UserManagement/index.js | 86 + .../components/ChangePasswordForm.js | 88 + src/containers/public/ChangePassword/index.js | 90 + .../public/ChangePassword/validationSchema.js | 28 + .../public/Login/components/LoginForm.js | 120 + src/containers/public/Login/constants.js | 7 + src/containers/public/Login/index.js | 208 + src/containers/public/Login/loginReducer.js | 69 + src/containers/public/Login/loginSaga.js | 42 + .../public/Login/validationSchema.js | 27 + .../public/PublicTopErrorPage/index.js | 72 + .../public/PublicTopSuccessPage/index.js | 183 + .../components/RegistrationForm.js | 113 + .../public/Registration/constants.js | 5 + src/containers/public/Registration/index.js | 64 + .../Registration/registrationReducer.js | 63 + .../public/Registration/registrationSaga.js | 42 + .../public/Registration/validationSchema.js | 25 + src/default.css | 192 + src/index.js | 28 + src/reducers/authReducer.js | 26 + src/reducers/fetchDataReducer.js | 38 + src/reducers/index.js | 25 + src/reducers/logoutReducer.js | 35 + src/registerServiceWorker.js | 117 + src/sagas/errorHanlder.js | 47 + src/sagas/fetchDataSaga.js | 36 + src/sagas/index.js | 29 + src/sagas/logoutSaga.js | 30 + src/store/index.js | 48 + src/utils/Api.js | 50 + src/utils/NotificationApi.js | 31 + src/utils/StationApi.js | 83 + src/utils/cookie.js | 49 + src/utils/encrypto.js | 40 + src/utils/helper.js | 34 + src/utils/logs.js | 41 + src/utils/sodium.js | 27 + variables.json | 28 + yarn.lock | 11336 ++++++++++++++++ 231 files changed, 33298 insertions(+), 29 deletions(-) create mode 100644 .env create mode 100644 .flowconfig create mode 100644 .gitlab-ci.yml create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 conf/conf.d/default.conf create mode 100644 config-overrides.js create mode 100644 docker-compose-prod.yml create mode 100644 docker-compose-public.yml create mode 100644 docker-compose.yml create mode 100644 jsconfig.json create mode 100644 json-server/db.json create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 public/favicon_unioil.ico create mode 100644 public/index.html create mode 100644 public/manifest.json create mode 100644 src/App.js create mode 100644 src/App.test.js create mode 100644 src/actions/index.js create mode 100644 src/assets/img/bg_cms.png create mode 100644 src/assets/img/ic_error.svg create mode 100644 src/assets/img/ic_success.svg create mode 100644 src/assets/img/logo_unioil.png create mode 100644 src/components/CustomTable/index.js create mode 100644 src/components/Dashboard/Layout/components/HeaderDropdown.js create mode 100644 src/components/Dashboard/Layout/components/MainBreadcrumbs.js create mode 100644 src/components/Dashboard/Layout/components/MainContent.js create mode 100644 src/components/Dashboard/Layout/components/MainFooter.js create mode 100644 src/components/Dashboard/Layout/components/MainHeader.js create mode 100644 src/components/Dashboard/Layout/components/MainSidebar.js create mode 100644 src/components/Dashboard/Layout/index.js create mode 100644 src/components/Dashboard/Routes/index.js create mode 100644 src/components/DataDisplay/List.js create mode 100644 src/components/DataDisplay/index.js create mode 100644 src/components/Dropdown/DropdownExport.js create mode 100644 src/components/Dropdown/index.js create mode 100644 src/components/Forms/AdvanceSearchFilter.js create mode 100644 src/components/Forms/AntdForms.js create mode 100644 src/components/Forms/Cascader.js create mode 100644 src/components/Forms/Checkbox.js create mode 100644 src/components/Forms/DatePicker.js create mode 100644 src/components/Forms/HeaderForm.js create mode 100644 src/components/Forms/InputMaskNumber.js create mode 100644 src/components/Forms/InputNumberAntD.js create mode 100644 src/components/Forms/InputPassword.js create mode 100644 src/components/Forms/InputTextArea.js create mode 100644 src/components/Forms/Inputs.js create mode 100644 src/components/Forms/MultiSelect.js create mode 100644 src/components/Forms/MultiSelectOptions.js create mode 100644 src/components/Forms/Radio.js create mode 100644 src/components/Forms/Select.js create mode 100644 src/components/Forms/SingleUploadImage.js create mode 100644 src/components/Forms/TimePicker.js create mode 100644 src/components/Forms/UploadImage.js create mode 100644 src/components/Forms/index.js create mode 100644 src/components/Loading/index.js create mode 100644 src/components/Login/Layout/index.js create mode 100644 src/components/Login/Routes/index.js create mode 100644 src/components/Modal/ModalCancel.js create mode 100644 src/components/Page404/404.js create mode 100644 src/components/PageError/403.js create mode 100644 src/components/PageError/404.js create mode 100644 src/components/PageError/index.js create mode 100644 src/components/StationTables/index.js create mode 100644 src/components/TableGrid/TableLayout.js create mode 100644 src/components/Tables/AdvanceTable.js create mode 100644 src/components/Tables/index.css create mode 100644 src/constants/Response.js create mode 100644 src/constants/Types.js create mode 100644 src/constants/global.js create mode 100644 src/constants/validation.js create mode 100644 src/containers/private/AboutUs/CardTypes/Create/components/AddCardForm.js create mode 100644 src/containers/private/AboutUs/CardTypes/Create/index.js create mode 100644 src/containers/private/AboutUs/CardTypes/Create/validationSchema.js create mode 100644 src/containers/private/AboutUs/CardTypes/Edit/components/EditCardForm.js create mode 100644 src/containers/private/AboutUs/CardTypes/Edit/index.js create mode 100644 src/containers/private/AboutUs/CardTypes/Edit/validationSchema.js create mode 100644 src/containers/private/AboutUs/CardTypes/List/index.js create mode 100644 src/containers/private/AboutUs/CardTypes/View/components/ViewCardForm.js create mode 100644 src/containers/private/AboutUs/CardTypes/View/index.js create mode 100644 src/containers/private/AboutUs/TermAndPrivacy/Create/components/AddUserManagementForm.js create mode 100644 src/containers/private/AboutUs/TermAndPrivacy/Create/index.js create mode 100644 src/containers/private/AboutUs/TermAndPrivacy/Create/validationSchema.js create mode 100644 src/containers/private/AboutUs/TermAndPrivacy/Edit/components/EditUserManagementForm.js create mode 100644 src/containers/private/AboutUs/TermAndPrivacy/Edit/index.js create mode 100644 src/containers/private/AboutUs/TermAndPrivacy/Edit/validationSchema.js create mode 100644 src/containers/private/AboutUs/TermAndPrivacy/List/index.js create mode 100644 src/containers/private/AboutUs/TermAndPrivacy/View/components/ViewUserManagementForm.js create mode 100644 src/containers/private/AboutUs/TermAndPrivacy/View/index.js create mode 100644 src/containers/private/AboutUs/index.js create mode 100644 src/containers/private/HomePage/PhotoSlider/Create/components/AddPhotoSliderForm.js create mode 100644 src/containers/private/HomePage/PhotoSlider/Create/index.js create mode 100644 src/containers/private/HomePage/PhotoSlider/Create/validationSchema.js create mode 100644 src/containers/private/HomePage/PhotoSlider/Edit/components/EditPhotoSliderForm.js create mode 100644 src/containers/private/HomePage/PhotoSlider/Edit/index.js create mode 100644 src/containers/private/HomePage/PhotoSlider/Edit/validationSchema.js create mode 100644 src/containers/private/HomePage/PhotoSlider/List/index.js create mode 100644 src/containers/private/HomePage/PhotoSlider/View/components/ViewPhotoSliderForm.js create mode 100644 src/containers/private/HomePage/PhotoSlider/View/index.js create mode 100644 src/containers/private/HomePage/PhotoSlider/index.js create mode 100644 src/containers/private/MemberManagement/CardMember/List/index.js create mode 100644 src/containers/private/MemberManagement/CardMember/View/components/CardMemberViewForm.js create mode 100644 src/containers/private/MemberManagement/CardMember/View/index.js create mode 100644 src/containers/private/MemberManagement/LockAccount/List/index.js create mode 100644 src/containers/private/MemberManagement/LockAccount/View/components/LockAccountViewForm.js create mode 100644 src/containers/private/MemberManagement/LockAccount/View/index.js create mode 100644 src/containers/private/MemberManagement/index.js create mode 100644 src/containers/private/MyProfile/View/MyProfileView.js create mode 100644 src/containers/private/MyProfile/index.js create mode 100644 src/containers/private/Notifications/Create/components/AddNotificationForm.js create mode 100644 src/containers/private/Notifications/Create/index.js create mode 100644 src/containers/private/Notifications/Create/reducer.js create mode 100644 src/containers/private/Notifications/Create/saga.js create mode 100644 src/containers/private/Notifications/Create/validationSchema.js create mode 100644 src/containers/private/Notifications/List/index.js create mode 100644 src/containers/private/Notifications/index.js create mode 100644 src/containers/private/Promotions/Create/components/AddPromotionForm.js create mode 100644 src/containers/private/Promotions/Create/index.js create mode 100644 src/containers/private/Promotions/Create/validationSchema.js create mode 100644 src/containers/private/Promotions/Edit/components/EditUserManagementForm.js create mode 100644 src/containers/private/Promotions/Edit/index.js create mode 100644 src/containers/private/Promotions/Edit/validationSchema.js create mode 100644 src/containers/private/Promotions/List/index.js create mode 100644 src/containers/private/Promotions/View/components/ViewPromotionsForm.js create mode 100644 src/containers/private/Promotions/View/index.js create mode 100644 src/containers/private/Promotions/index.js create mode 100644 src/containers/private/Reports/MobileUsageReport/List/index.js create mode 100644 src/containers/private/Reports/RegistrationReport/List/index.js create mode 100644 src/containers/private/Reports/StationRatingReport/List/index.js create mode 100644 src/containers/private/Reports/TopUpUsageReport/List/index.js create mode 100644 src/containers/private/Reports/index.js create mode 100644 src/containers/private/StationLocator/Branches/Create/index.js create mode 100644 src/containers/private/StationLocator/Branches/Create/reducer.js create mode 100644 src/containers/private/StationLocator/Branches/Create/saga.js create mode 100644 src/containers/private/StationLocator/Branches/Edit/index.js create mode 100644 src/containers/private/StationLocator/Branches/List/index.js create mode 100644 src/containers/private/StationLocator/Branches/index.js create mode 100644 src/containers/private/StationLocator/Fuels/Create/index.js create mode 100644 src/containers/private/StationLocator/Fuels/Create/reducer.js create mode 100644 src/containers/private/StationLocator/Fuels/Create/saga.js create mode 100644 src/containers/private/StationLocator/Fuels/Edit/index.js create mode 100644 src/containers/private/StationLocator/Fuels/List/index.js create mode 100644 src/containers/private/StationLocator/Fuels/index.js create mode 100644 src/containers/private/StationLocator/Location/Create/index.js create mode 100644 src/containers/private/StationLocator/Location/Create/reducer.js create mode 100644 src/containers/private/StationLocator/Location/Create/saga.js create mode 100644 src/containers/private/StationLocator/Location/Edit/index.js create mode 100644 src/containers/private/StationLocator/Location/Edit/reducer.js create mode 100644 src/containers/private/StationLocator/Location/Edit/saga.js create mode 100644 src/containers/private/StationLocator/Location/List/index.js create mode 100644 src/containers/private/StationLocator/Location/components/HeaderForm.js create mode 100644 src/containers/private/StationLocator/Location/components/LocationModal.js create mode 100644 src/containers/private/StationLocator/Location/components/UploadPricesModal.js create mode 100644 src/containers/private/StationLocator/Location/components/editStationForm.js create mode 100644 src/containers/private/StationLocator/Location/components/stationForm.js create mode 100644 src/containers/private/StationLocator/Location/index.js create mode 100644 src/containers/private/StationLocator/Location/validationSchema.js create mode 100644 src/containers/private/StationLocator/components/branchSchema.js create mode 100644 src/containers/private/StationLocator/components/branchesForm.js create mode 100644 src/containers/private/StationLocator/components/fuelSchema.js create mode 100644 src/containers/private/StationLocator/components/fuelsForm.js create mode 100644 src/containers/private/SystemPreferences/Create/components/CreateSystemPreferencesForm.js create mode 100644 src/containers/private/SystemPreferences/Create/index.js create mode 100644 src/containers/private/SystemPreferences/Create/reducer.js create mode 100644 src/containers/private/SystemPreferences/Create/saga.js create mode 100644 src/containers/private/SystemPreferences/Create/validationSchema.js create mode 100644 src/containers/private/SystemPreferences/index.js create mode 100644 src/containers/private/TopUp/Create/components/TopUpCreateForm.js create mode 100644 src/containers/private/TopUp/Create/index.js create mode 100644 src/containers/private/TopUp/Create/validationSchema.js create mode 100644 src/containers/private/TopUp/Edit/components/EditUserManagementForm.js create mode 100644 src/containers/private/TopUp/Edit/index.js create mode 100644 src/containers/private/TopUp/Edit/validationSchema.js create mode 100644 src/containers/private/TopUp/List/index.js create mode 100644 src/containers/private/TopUp/View/components/ViewTopUpForm.js create mode 100644 src/containers/private/TopUp/View/index.js create mode 100644 src/containers/private/TopUp/index.js create mode 100644 src/containers/private/UserManagement/Create/components/AddUserManagementForm.js create mode 100644 src/containers/private/UserManagement/Create/index.js create mode 100644 src/containers/private/UserManagement/Create/reducer.js create mode 100644 src/containers/private/UserManagement/Create/saga.js create mode 100644 src/containers/private/UserManagement/Create/validationSchema.js create mode 100644 src/containers/private/UserManagement/Edit/components/EditUserManagementForm.js create mode 100644 src/containers/private/UserManagement/Edit/index.js create mode 100644 src/containers/private/UserManagement/Edit/validationSchema.js create mode 100644 src/containers/private/UserManagement/List/index.js create mode 100644 src/containers/private/UserManagement/View/components/ViewUserManagementForm.js create mode 100644 src/containers/private/UserManagement/View/index.js create mode 100644 src/containers/private/UserManagement/View/validationSchema.js create mode 100644 src/containers/private/UserManagement/index.js create mode 100644 src/containers/public/ChangePassword/components/ChangePasswordForm.js create mode 100644 src/containers/public/ChangePassword/index.js create mode 100644 src/containers/public/ChangePassword/validationSchema.js create mode 100644 src/containers/public/Login/components/LoginForm.js create mode 100644 src/containers/public/Login/constants.js create mode 100644 src/containers/public/Login/index.js create mode 100644 src/containers/public/Login/loginReducer.js create mode 100644 src/containers/public/Login/loginSaga.js create mode 100644 src/containers/public/Login/validationSchema.js create mode 100644 src/containers/public/PublicTopErrorPage/index.js create mode 100644 src/containers/public/PublicTopSuccessPage/index.js create mode 100644 src/containers/public/Registration/components/RegistrationForm.js create mode 100644 src/containers/public/Registration/constants.js create mode 100644 src/containers/public/Registration/index.js create mode 100644 src/containers/public/Registration/registrationReducer.js create mode 100644 src/containers/public/Registration/registrationSaga.js create mode 100644 src/containers/public/Registration/validationSchema.js create mode 100644 src/default.css create mode 100644 src/index.js create mode 100644 src/reducers/authReducer.js create mode 100644 src/reducers/fetchDataReducer.js create mode 100644 src/reducers/index.js create mode 100644 src/reducers/logoutReducer.js create mode 100644 src/registerServiceWorker.js create mode 100644 src/sagas/errorHanlder.js create mode 100644 src/sagas/fetchDataSaga.js create mode 100644 src/sagas/index.js create mode 100644 src/sagas/logoutSaga.js create mode 100644 src/store/index.js create mode 100644 src/utils/Api.js create mode 100644 src/utils/NotificationApi.js create mode 100644 src/utils/StationApi.js create mode 100644 src/utils/cookie.js create mode 100644 src/utils/encrypto.js create mode 100644 src/utils/helper.js create mode 100644 src/utils/logs.js create mode 100644 src/utils/sodium.js create mode 100644 variables.json create mode 100644 yarn.lock diff --git a/.env b/.env new file mode 100644 index 0000000..c380565 --- /dev/null +++ b/.env @@ -0,0 +1,15 @@ +REACT_APP_DOMAIN=192.168.0.68 +REACT_APP_PATH=UniOilLoyaltyApp-BackEnd/public/index.php/api/cms +REACT_APP_DEV=http://$REACT_APP_DOMAIN/$REACT_APP_PATH +REACT_APP_QA=http://$REACT_APP_DOMAIN:4000/$REACT_APP_PATH +REACT_APP_IMG_URL=http://$REACT_APP_DOMAIN/UniOilLoyaltyApp-BackEnd/ +REACT_APP_API=https://mobileapi.unioilapps.com/api/cms +REACT_APP_TOKEN=X_TOKEN +NODE_PATH=src/ +GENERATE_SOURCEMAP=false +REACT_APP_PUBLIC=false +REACT_APP_NOTIF_API=http://unioilcms.taxikel.com:3000/api/ +REACT_APP_STATION_API_TESTING=https://testing-api-station-locator.herokuapp.com/api/ +REACT_APP_STATION_API_TESTINGX=https://station-locator-api.herokuapp.com/api/ +REACT_APP_STATION_API=https://cors-anywhere.herokuapp.com/13.212.2.253/api/ +REACT_APP_API_SYNC=https://mobileapi.unioilapps.com/api/mobile/ diff --git a/.flowconfig b/.flowconfig new file mode 100644 index 0000000..c1aa61b --- /dev/null +++ b/.flowconfig @@ -0,0 +1,12 @@ +[ignore] +./components +[include] + +[libs] +.*/node_modules/* +[lints] + +[options] + + +[strict] diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..fc06c5e --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,40 @@ +image: node:latest + +before_script: + - apt-get update -qy + - apt-get install -y ruby-dev + - gem install dpl + +stages: + - testing + - staging + - production + +testing: + type: deploy + stage: testing + image: ruby:latest + script: + - dpl --provider=heroku --app=$HEROKU_APP_TESTING --api-key=$HEROKU_API_KEY + only: + - testing + +staging: + type: deploy + stage: staging + image: ruby:latest + script: + - dpl --provider=heroku --app=$HEROKU_APP_STAGING --api-key=$HEROKU_API_KEY + only: + - staging + +# production: +# type: deploy +# stage: production +# image: ruby:latest +# script: +# - dpl --provider=heroku --app=$HEROKU_APP_PRODUCTION --api-key=$HEROKU_API_KEY +# only: +# - master + + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8f35816 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +# Stage 1 - the build process +FROM node:8.11.3 as builder +RUN mkdir /usr/src/app +WORKDIR /usr/src/app +ENV PATH /usr/src/app/node_modules/.bin:$PATH +ARG REACT_APP_PATH +ARG REACT_APP_DOMAIN +ARG REACT_APP_IMG_PATH +ARG REACT_APP_PUBLIC +ARG PUBLIC_URL +ARG GENERATE_SOURCEMAP +ENV REACT_APP_API $REACT_APP_DOMAIN/$REACT_APP_PATH +ENV REACT_APP_IMG_URL $REACT_APP_DOMAIN/$REACT_APP_IMG_PATH +RUN echo "DEBUG": $PUBLIC_URL + +COPY package.json yarn.lock /usr/src/app/ +RUN yarn install +COPY . /usr/src/app +RUN yarn build + +# Stage 2 - the production environment +FROM nginx:1.13.9-alpine + +RUN rm -rf /etc/nginx/conf.d +COPY conf /etc/nginx + +RUN rm -rf /usr/share/nginx/html/* +COPY --from=builder /usr/src/app/build /usr/share/nginx/html + +CMD ["nginx", "-g", "daemon off;"] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0c34862 --- /dev/null +++ b/Makefile @@ -0,0 +1,54 @@ +dev-server: + docker-compose up -d --build dev-build +.PHONY: dev-server + +dev-server-stop: + docker-compose stop -t 1 dev-build +.PHONY: dev-server-stop + +test-server: + docker-compose up -d --build test-build +.PHONY: test-server + +test-server-stop: + docker-compose stop -t 1 test-build +.PHONY: test-server-stop + +prod-server: + docker-compose -f docker-compose-prod.yml up -d --build +.PHONY: prod-server + +prod-server-stop: + docker-compose -f docker-compose-prod.yml down +.PHONY: prod-server-stop + +dev-public-callback-server: + docker-compose up -d --build public-dev-build +.PHONY: dev-public-callback-server + +dev-public-callback-server-stop: + docker-compose stop -t 1 public-dev-build +.PHONY: dev-public-callback-server-stop + +test-public-callback-server: + docker-compose up -d --build public-test-build +.PHONY: test-public-callback-server + +test-public-callback-server-stop: + docker-compose stop -t 1 public-test-build +.PHONY: test-public-callback-server-stop + +prod-public-callback-server: + docker-compose -f docker-compose-public.yml up -d --build +.PHONY: prod-public-callback-server + +prod-public-callback-server-stop: + docker-compose -f docker-compose-public.yml down +.PHONY: prod-public-callback-server-stop + +stop: + docker-compose down +.PHONY: stop + +clean: + docker system prune --volumes -f \ No newline at end of file diff --git a/README.md b/README.md index 16eff96..29f94d3 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,74 @@ -**Edit a file, create a new file, and clone from Bitbucket in under 2 minutes** + +## Server Dependences -When you're done, you can delete the content in this README and update the file with details for others getting started with your repository. +* [Docker/Linux](https://docs.docker.com/install/linux/docker-ce/ubuntu/) +* [Docker Compose/Linux](https://docs.docker.com/compose/install/#install-compose) -*We recommend that you open this README in another tab as you perform the tasks below. You can [watch our video](https://youtu.be/0ocf7u76WSo) for a full demo of all the steps in this tutorial. Open the video in a new tab to avoid leaving Bitbucket.* +### `sudo apt-get update` +### `sudo apt-get install build-essential` ---- +## CMS - Local Development Scripts -## Edit a file +In the project directory, you can run: -You’ll start by editing this README file to learn how to edit a file in Bitbucket. +### `npm start` -1. Click **Source** on the left side. -2. Click the README.md link from the list of files. -3. Click the **Edit** button. -4. Delete the following text: *Delete this line to make a change to the README from Bitbucket.* -5. After making your change, click **Commit** and then **Commit** again in the dialog. The commit page will open and you’ll see the change you just made. -6. Go back to the **Source** page. +Runs the app in the development mode.
+Open [http://localhost:3000](http://localhost:3000) to view it in the browser. ---- +The page will reload if you make edits.
+You will also see any lint errors in the console. -## Create a file +## Development Server Scripts -Next, you’ll add a new file to this repository. +Up the server for staging development run: +### `make dev-server` -1. Click the **New file** button at the top of the **Source** page. -2. Give the file a filename of **contributors.txt**. -3. Enter your name in the empty file space. -4. Click **Commit** and then **Commit** again in the dialog. -5. Go back to the **Source** page. +Stop the server run: +### `make dev-server-stop` -Before you move on, go ahead and explore the repository. You've already seen the **Source** page, but check out the **Commits**, **Branches**, and **Settings** pages. +## QA/Testing Server Scripts ---- +Up the server for staging QA/Testing run: +### `make test-server` -## Clone a repository +Stop the server run: +### `make test-server-stop` -Use these steps to clone from SourceTree, our client for using the repository command-line free. Cloning allows you to work on your files locally. If you don't yet have SourceTree, [download and install first](https://www.sourcetreeapp.com/). If you prefer to clone from the command line, see [Clone a repository](https://confluence.atlassian.com/x/4whODQ). +## Production Server Scripts -1. You’ll see the clone button under the **Source** heading. Click that button. -2. Now click **Check out in SourceTree**. You may need to create a SourceTree account or log in. -3. When you see the **Clone New** dialog in SourceTree, update the destination path and name if you’d like to and then click **Clone**. -4. Open the directory you just created to see your repository’s files. +Up the server for production run: +### `make prod-server` + +Stop the server run: +### `make prod-server-stop` + +Clean image container run: +### `make clean` + + + +## Public Development Server Scripts + +Up the server for staging development run: +### `make dev-public-callback-server` + +Stop the server run: +### `make dev-public-callback-server-stop` + +## Public QA/Testing Server Scripts + +Up the server for staging QA/Testing run: +### `make test-public-callback-server` + +Stop the server run: +### `make test-public-callback-server-stop` + +## Public Production Server Scripts + +Up the server for staging QA/Testing run: +### `make prod-public-callback-server` + +Stop the server run: +### `make prod-public-callback-server-stop` -Now that you're more familiar with your Bitbucket repository, go ahead and add a new file locally. You can [push your change back to Bitbucket with SourceTree](https://confluence.atlassian.com/x/iqyBMg), or you can [add, commit,](https://confluence.atlassian.com/x/8QhODQ) and [push from the command line](https://confluence.atlassian.com/x/NQ0zDQ). \ No newline at end of file diff --git a/conf/conf.d/default.conf b/conf/conf.d/default.conf new file mode 100644 index 0000000..624816c --- /dev/null +++ b/conf/conf.d/default.conf @@ -0,0 +1,133 @@ +# read more here http://tautt.com/best-nginx-configuration-for-security/ + +# add_header Server "mystartup/1.0" always; + # config to don't allow the browser to render the page inside an frame or iframe + # and avoid clickjacking http://en.wikipedia.org/wiki/Clickjacking + # if you need to allow [i]frames, you can use SAMEORIGIN or even set an uri with ALLOW-FROM uri + # https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options + add_header X-Frame-Options SAMEORIGIN; + + # when serving user-supplied content, include a X-Content-Type-Options: nosniff header along with the Content-Type: header, + # to disable content-type sniffing on some browsers. + # https://www.owasp.org/index.php/List_of_useful_HTTP_headers + # currently suppoorted in IE > 8 http://blogs.msdn.com/b/ie/archive/2008/09/02/ie8-security-part-vi-beta-2-update.aspx + # http://msdn.microsoft.com/en-us/library/ie/gg622941(v=vs.85).aspx + # 'soon' on Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=471020 + add_header X-Content-Type-Options nosniff; + + # This header enables the Cross-site scripting (XSS) filter built into most recent web browsers. + # It's usually enabled by default anyway, so the role of this header is to re-enable the filter for + # this particular website if it was disabled by the user. + # https://www.owasp.org/index.php/List_of_useful_HTTP_headers + add_header X-XSS-Protection "1; mode=block"; + + # with Content Security Policy (CSP) enabled(and a browser that supports it(http://caniuse.com/#feat=contentsecuritypolicy), + # you can tell the browser that it can only download content from the domains you explicitly allow + # http://www.html5rocks.com/en/tutorials/security/content-security-policy/ + # https://www.owasp.org/index.php/Content_Security_Policy + # I need to change our application code so we can increase security by disabling 'unsafe-inline' 'unsafe-eval' + # directives for css and js(if you have inline css or js, you will need to keep it too). + # more: http://www.html5rocks.com/en/tutorials/security/content-security-policy/#inline-code-considered-harmful + # add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://ssl.google-analytics.com https://assets.zendesk.com https://connect.facebook.net; img-src 'self' https://ssl.google-analytics.com https://s-static.ak.facebook.com https://assets.zendesk.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://assets.zendesk.com; font-src 'self' https://themes.googleusercontent.com; frame-src https://assets.zendesk.com https://www.facebook.com https://s-static.ak.facebook.com https://tautt.zendesk.com; object-src 'none'"; + # add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" always; + add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; + + + + +server { + listen 80; + + sendfile on; + + default_type application/octet-stream; + # more_clear_headers Server; + # more_set_headers 'Server: Powered by Yondu'; + # don't send the nginx version number in error pages and Server header + server_tokens off; + + + + gzip on; + gzip_http_version 1.1; + gzip_disable "MSIE [1-6]\."; + gzip_min_length 256; + gzip_vary on; + gzip_proxied expired no-cache no-store private auth; + gzip_types + application/atom+xml + application/javascript + application/json + application/ld+json + application/manifest+json + application/rss+xml + application/vnd.geo+json + application/vnd.ms-fontobject + application/x-font-ttf + application/x-web-app-manifest+json + application/xhtml+xml + application/xml + font/opentype + image/bmp + image/svg+xml + image/x-icon + text/cache-manifest + text/css + text/plain + text/vcard + text/vnd.rim.location.xloc + text/vtt + text/x-component + text/x-cross-domain-policy; + # text/html is always compressed by gzip module + gzip_comp_level 9; + server_name *.example.org; + root /usr/share/nginx/html; + + # . files + location ~ /\. { + deny all; + } + # cache.appcache, your document html and data + location ~* \.(?:manifest|appcache|html?|xml|json)$ { + expires -1; + # access_log logs/static.log; # I don't usually include a static log + + + } + + + # Media: images, icons, video, audio, HTC + location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { + expires 1M; + access_log off; + + } + + # location ~* (service-worker\.js)$ { + # add_header Cache-Control no-store, no-cache; + # expires -1; + # proxy_no_cache 1; + + # } + + # CSS and Javascript + location ~* /static/.*\.(?:css|js)$ { + expires 1y; + access_log off; + + } + + + # location /service-worker.js { + # expires -1; + # add_header Cache-Control no-store, no-cache; + # access_log off; + # } + + + location / { + try_files $uri $uri/ /index.html; + } + +} \ No newline at end of file diff --git a/config-overrides.js b/config-overrides.js new file mode 100644 index 0000000..fff9c17 --- /dev/null +++ b/config-overrides.js @@ -0,0 +1,491 @@ +const { injectBabelPlugin } = require("react-app-rewired"); +const rewireLess = require("react-app-rewire-less"); +// const VariablesOutput = require('less-plugin-variables-output'); + +// const fs = require('fs'); +// const path = require('path'); +// const less = require('less'); + +module.exports = function override(config, env) { + + config = injectBabelPlugin(['import', { libraryName: 'antd', style: true }], config); // change importing css to less + config = rewireLess.withLoaderOptions({ + javascriptEnabled: true, + modifyVars: { + // "@primary-color": "#1DA57A" , + + + '@primary-color' : '#1890ff', + '@info-color' : '#1890ff', + '@success-color ' : '#52c41a', + '@processing-color' : '#1890ff', + '@error-color' : '#f5222d', + '@highlight-color' : '#f5222d', + '@warning-color' : '#faad14', + '@normal-color' : '#d9d9d9', + +// Color used by default to control hover and active backgrounds and for +// alert info backgrounds. +// @primary-1: color(~`colorPalette("@{primary-color}", 1)`); // replace tint(@primary-color, 90%) +// @primary-2: color(~`colorPalette("@{primary-color}", 2)`); // replace tint(@primary-color, 80%) +// @primary-3: color(~`colorPalette("@{primary-color}", 3)`); // unused +// @primary-4: color(~`colorPalette("@{primary-color}", 4)`); // unused +// @primary-5: color(~`colorPalette("@{primary-color}", 5)`); // color used to control the text color in many active and hover states, replace tint(@primary-color, 20%) +// @primary-6: @primary-color; // color used to control the text color of active buttons, don't use, use @primary-color +// @primary-7: color(~`colorPalette("@{primary-color}", 7)`); // replace shade(@primary-color, 5%) +// @primary-8: color(~`colorPalette("@{primary-color}", 8)`); // unused +// @primary-9: color(~`colorPalette("@{primary-color}", 9)`); // unused +// @primary-10: color(~`colorPalette("@{primary-color}", 10)`); // unused + +// Base Scaffolding Variables +// --- + +// Background color for `` +// @body-background : #fff; +// Base background color for most components +// @component-background : #fff; +// @font-family-no-number : "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif; +// @font-family : "Monospaced Number", @font-family-no-number; +// @code-family : Consolas, Menlo, Courier, monospace; +// @heading-color : fade(#000, 85%); +// @text-color : fade(#000, 65%); +// @text-color-secondary : fade(#000, 45%); +// @heading-color-dark : fade(#fff, 100%); +// @text-color-dark : fade(#fff, 85%); +// @text-color-secondary-dark: fade(#fff, 65%); +'@font-size-base' : '14px' +// @font-size-lg : @font-size-base + 2px; +// @font-size-sm : 12px; +// @line-height-base : 1.5; +// @border-radius-base : 4px; +// @border-radius-sm : 2px; + +// vertical paddings +// @padding-lg : 24px; // containers +// @padding-md : 16px; // small containers and buttons +// @padding-sm : 12px; // Form controls and items +// @padding-xs : 8px; // small items + +// vertical padding for all form controls +// @control-padding-horizontal: @padding-sm; +// @control-padding-horizontal-sm: @padding-xs; + +// The background colors for active and hover states for things like +// list items or table cells. +// @item-active-bg : @primary-1; +// @item-hover-bg : @primary-1; + +// ICONFONT +// @iconfont-css-prefix : anticon; +// @icon-url : "https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i"; + +// LINK +// @link-color : @primary-color; +// @link-hover-color : color(~`colorPalette("@{link-color}", 5)`); +// @link-active-color : color(~`colorPalette("@{link-color}", 7)`); +// @link-decoration : none; +// @link-hover-decoration : none; + +// Animation +// @ease-out : cubic-bezier(0.215, 0.61, 0.355, 1); +// @ease-in : cubic-bezier(0.55, 0.055, 0.675, 0.19); +// @ease-in-out : cubic-bezier(0.645, 0.045, 0.355, 1); +// @ease-out-back : cubic-bezier(0.12, 0.4, 0.29, 1.46); +// @ease-in-back : cubic-bezier(0.71, -0.46, 0.88, 0.6); +// @ease-in-out-back : cubic-bezier(0.71, -0.46, 0.29, 1.46); +// @ease-out-circ : cubic-bezier(0.08, 0.82, 0.17, 1); +// @ease-in-circ : cubic-bezier(0.6, 0.04, 0.98, 0.34); +// @ease-in-out-circ : cubic-bezier(0.78, 0.14, 0.15, 0.86); +// @ease-out-quint : cubic-bezier(0.23, 1, 0.32, 1); +// @ease-in-quint : cubic-bezier(0.755, 0.05, 0.855, 0.06); +// @ease-in-out-quint : cubic-bezier(0.86, 0, 0.07, 1); + +// Border color +// @border-color-base : hsv(0, 0, 85%); // base border outline a component +// @border-color-split : hsv(0, 0, 91%); // split border inside a component +// @border-width-base : 1px; // width of the border for a component +// @border-style-base : solid; // style of a components border + +// Outline +// @outline-blur-size : 0; +// @outline-width : 2px; +// @outline-color : @primary-color; + +// @background-color-light : hsv(0, 0, 98%); // background of header and selected item +// @background-color-base : hsv(0, 0, 96%); // Default grey background color + +// Disabled states +// @disabled-color : fade(#000, 25%); +// @disabled-bg : @background-color-base; +// @disabled-color-dark : fade(#fff, 35%); + +// Shadow +// @shadow-color : rgba(0, 0, 0, .15); +// @box-shadow-base : @shadow-1-down; +// @shadow-1-up : 0 2px 8px @shadow-color; +// @shadow-1-down : 0 2px 8px @shadow-color; +// @shadow-1-left : -2px 0 8px @shadow-color; +// @shadow-1-right : 2px 0 8px @shadow-color; +// @shadow-2 : 0 4px 12px @shadow-color; + +// Buttons +// @btn-font-weight : 400; +// @btn-border-radius-base : @border-radius-base; +// @btn-border-radius-sm : @border-radius-base; + +// @btn-primary-color : #fff; +// @btn-primary-bg : @primary-color; + +// @btn-default-color : @text-color; +// @btn-default-bg : #fff; +// @btn-default-border : @border-color-base; + +// @btn-danger-color : @error-color; +// @btn-danger-bg : @background-color-base; +// @btn-danger-border : @border-color-base; + +// @btn-disable-color : @disabled-color; +// @btn-disable-bg : @disabled-bg; +// @btn-disable-border : @border-color-base; + +// @btn-padding-base : 0 @padding-md - 1px; +// @btn-font-size-lg : @font-size-lg; +// @btn-font-size-sm : @font-size-base; +// @btn-padding-lg : @btn-padding-base; +// @btn-padding-sm : 0 @padding-xs - 1px; + +// @btn-height-base : 32px; +// @btn-height-lg : 40px; +// @btn-height-sm : 24px; + +// @btn-circle-size : @btn-height-base; +// @btn-circle-size-lg : @btn-height-lg; +// @btn-circle-size-sm : @btn-height-sm; + +// @btn-group-border : @primary-5; + +// Checkbox +// @checkbox-size : 16px; +// @checkbox-color : @primary-color; + +// Radio +// @radio-size : 16px; +// @radio-dot-color : @primary-color; + +// Radio buttons +// @radio-button-bg : @btn-default-bg; +// @radio-button-color : @btn-default-color; +// @radio-button-hover-color : @primary-5; +// @radio-button-active-color : @primary-7; + +// Media queries breakpoints +// Extra small screen / phone +// @screen-xs : 480px; +// @screen-xs-min : @screen-xs; + +// Small screen / tablet +// @screen-sm : 576px; +// @screen-sm-min : @screen-sm; + +// Medium screen / desktop +// @screen-md : 768px; +// @screen-md-min : @screen-md; + +// Large screen / wide desktop +// @screen-lg : 992px; +// @screen-lg-min : @screen-lg; + +// Extra large screen / full hd +// @screen-xl : 1200px; +// @screen-xl-min : @screen-xl; + +// Extra extra large screen / large descktop +// @screen-xxl : 1600px; +// @screen-xxl-min : @screen-xxl; + +// provide a maximum +// @screen-xs-max : (@screen-sm-min - 1px); +// @screen-sm-max : (@screen-md-min - 1px); +// @screen-md-max : (@screen-lg-min - 1px); +// @screen-lg-max : (@screen-xl-min - 1px); +// @screen-xl-max : (@screen-xxl-min - 1px); + +// Grid system +// @grid-columns : 24; +// @grid-gutter-width : 0; + +// Layout +// @layout-body-background : #f0f2f5; +// @layout-header-background : #001529; +// @layout-footer-background : @layout-body-background; +// @layout-header-height : 64px; +// @layout-header-padding : 0 50px; +// @layout-footer-padding : 24px 50px; +// @layout-sider-background : @layout-header-background; +// @layout-trigger-height : 48px; +// @layout-trigger-background : #002140; +// @layout-trigger-color : #fff; +// @layout-zero-trigger-width : 36px; +// @layout-zero-trigger-height : 42px; +// Layout light theme +// @layout-sider-background-light : #fff; +// @layout-trigger-background-light: #fff; +// @layout-trigger-color-light : @text-color; + +// z-index list +// @zindex-affix : 10; +// @zindex-back-top : 10; +// @zindex-modal-mask : 1000; +// @zindex-modal : 1000; +// @zindex-notification : 1010; +// @zindex-message : 1010; +// @zindex-popover : 1030; +// @zindex-picker : 1050; +// @zindex-dropdown : 1050; +// @zindex-tooltip : 1060; + +// Animation +// @animation-duration-slow: .3s; // Modal +// @animation-duration-base: .2s; +// @animation-duration-fast: .1s; // Tooltip + +// Form +// --- +// @label-required-color : @highlight-color; +// @label-color : @heading-color; +// @form-item-margin-bottom : 24px; +// @form-item-trailing-colon : true; +// @form-vertical-label-padding : 0 0 8px; +// @form-vertical-label-margin : 0; + +// Input +// --- +// @input-height-base : 32px; +// @input-height-lg : 40px; +// @input-height-sm : 24px; +// @input-padding-horizontal : @control-padding-horizontal - 1px; +// @input-padding-horizontal-base: @input-padding-horizontal; +// @input-padding-horizontal-sm : @control-padding-horizontal-sm - 1px; +// @input-padding-horizontal-lg : @input-padding-horizontal; +// @input-padding-vertical-base : 4px; +// @input-padding-vertical-sm : 1px; +// @input-padding-vertical-lg : 6px; +// @input-placeholder-color : hsv(0, 0, 75%); +// @input-color : @text-color; +// @input-border-color : @border-color-base; +// @input-bg : #fff; +// @input-addon-bg : @background-color-light; +// @input-hover-border-color : @primary-color; +// @input-disabled-bg : @disabled-bg; + +// Tooltip +// --- +//* Tooltip max width +// @tooltip-max-width: 250px; +//** Tooltip text color +// @tooltip-color: #fff; +//** Tooltip background color +// @tooltip-bg: rgba(0, 0, 0, .75); +//** Tooltip arrow width +// @tooltip-arrow-width: 5px; +//** Tooltip distance with trigger +// @tooltip-distance: @tooltip-arrow-width - 1px + 4px; +//** Tooltip arrow color +// @tooltip-arrow-color: @tooltip-bg; + +// Popover +// --- +//** Popover body background color +// @popover-bg: #fff; +//** Popover text color +// @popover-color: @text-color; +//** Popover maximum width +// @popover-min-width: 177px; +//** Popover arrow width +// @popover-arrow-width: 6px; +//** Popover arrow color +// @popover-arrow-color: @popover-bg; +//** Popover outer arrow width +//** Popover outer arrow color +// @popover-arrow-outer-color: @popover-bg; +//** Popover distance with trigger +// @popover-distance: @popover-arrow-width + 4px; + +// Modal +// -- +// @modal-mask-bg: rgba(0, 0, 0, 0.65); + +// Progress +// -- +// @progress-default-color: @processing-color; +// @progress-remaining-color: @background-color-base; + +// Menu +// --- +// @menu-inline-toplevel-item-height: 40px; +// @menu-item-height: 40px; +// @menu-collapsed-width: 80px; +// @menu-bg: @component-background; +// @menu-item-color: @text-color; +// @menu-highlight-color: @primary-color; +// @menu-item-active-bg: @item-active-bg; +// @menu-item-group-title-color: @text-color-secondary; +// dark theme +// @menu-dark-color: @text-color-secondary-dark; +// @menu-dark-bg: @layout-header-background; +// @menu-dark-arrow-color: #fff; +// @menu-dark-submenu-bg: #000c17; +// @menu-dark-highlight-color: #fff; +// @menu-dark-item-active-bg: @primary-color; + +// Spin +// --- +// @spin-dot-size-sm: 14px; +// @spin-dot-size: 20px; +// @spin-dot-size-lg: 32px; + +// Table +// -- +// @table-header-bg: @background-color-light; +// @table-header-sort-bg: @background-color-base; +// @table-row-hover-bg: @primary-1; +// @table-selected-row-bg: #fafafa; +// @table-expanded-row-bg: #fbfbfb; +// @table-padding-vertical: 16px; +// @table-padding-horizontal: 16px; + +// Tag +// -- +// @tag-default-bg: @background-color-light; +// @tag-default-color: @text-color; +// @tag-font-size: @font-size-sm; + +// TimePicker +// --- +// @time-picker-panel-column-width: 56px; +// @time-picker-panel-width: @time-picker-panel-column-width * 3; +// @time-picker-selected-bg: @background-color-base; + +// Carousel +// --- +// @carousel-dot-width: 16px; +// @carousel-dot-height: 3px; +// @carousel-dot-active-width: 24px; + +// Badge +// --- +// @badge-height: 20px; +// @badge-dot-size: 6px; +// @badge-font-size: @font-size-sm; +// @badge-font-weight: normal; +// @badge-status-size: 6px; + +// Rate +// --- +// @rate-star-color: @yellow-6; +// @rate-star-bg: @border-color-split; + +// Card +// --- +// @card-head-color: @heading-color; +// @card-head-background: @component-background; +// @card-head-padding: 16px; +// @card-inner-head-padding: 12px; +// @card-padding-base: 24px; +// @card-padding-wider: 32px; +// @card-actions-background: @background-color-light; +// @card-shadow: 0 2px 8px rgba(0, 0, 0, .09); + +// Tabs +// --- +// '@tabs-card-head-background': '@background-color-light'; +// '@tabs-card-height': '40px'; +// '@tabs-card-active-color': '@primary-color'; +// '@tabs-title-font-size': '@font-size-base'; +// '@tabs-title-font-size-lg': '@font-size-lg'; +// '@tabs-title-font-size-sm': '@font-size-base'; +// '@tabs-ink-bar-color': '@primary-color'; +// '@tabs-bar-margin': '0 0 16px 0'; +// '@tabs-horizontal-margin': '0 32px 0 0'; +// '@tabs-horizontal-padding': '12px 16px'; +// '@tabs-vertical-padding': '8px 24px'; +// '@tabs-vertical-margin': '0 0 16px 0'; +// '@tabs-scrolling-size': '32px'; +// '@tabs-highlight-color': '@primary-color'; +// '@tabs-hover-color': '@primary-5'; +// '@tabs-active-color': '@primary-7'; + +// BackTop +// --- +// '@back-top-color': '#fff'; +// '@back-top-bg': '@text-color-secondary'; +// '@back-top-hover-bg': '@text-color'; + +// Avatar +// --- +// '@avatar-size-base': '32px'; +// '@avatar-size-lg': '40px'; +// '@avatar-size-sm': '24px'; +// '@avatar-font-size-base': '18px'; +// '@avatar-font-size-lg': '24px'; +// '@avatar-font-size-sm': '14px'; +// '@avatar-bg': '#ccc'; +// '@avatar-color': '#fff'; +// '@avatar-border-radius': '@border-radius-base;' + +// Switch +// --- +// '@switch-height': '22px'; +// '@switch-sm-height': '16px'; +// '@switch-sm-checked-margin-left': '-(@switch-sm-height - 3px)'; +// '@switch-disabled-opacity': '0.4'; +// '@switch-color': '@primary-color'; + +// Pagination +// --- +// '@pagination-item-size': '32px'; +// '@pagination-item-size-sm': '24px'; +// '@pagination-font-family': 'Arial'; +// '@pagination-font-weight-active': '500'; + +// Breadcrumb +// --- +// '@breadcrumb-base-color': '@text-color-secondary'; +// '@breadcrumb-last-item-color': '@text-color'; +// '@breadcrumb-font-size': '@font-size-base'; +// '@breadcrumb-icon-font-size': '@font-size-sm'; +// '@breadcrumb-link-color': '@text-color-secondary'; +// '@breadcrumb-link-color-hover': '@primary-5'; +// '@breadcrumb-separator-color': '@text-color-secondary'; +// '@breadcrumb-separator-margin': '0 @padding-xs'; + +// Slider +// --- +// '@slider-margin': '14px 6px 10px'; +// '@slider-rail-background-color': '@background-color-base'; +// '@slider-rail-background-color-hover': '#e1e1e1'; +// '@slider-track-background-color': '@primary-3'; +// '@slider-track-background-color-hover': '@primary-4'; +// '@slider-handle-color': '@primary-3'; +// '@slider-handle-color-hover': '@primary-4'; +// '@slider-handle-color-focus': 'tint(@primary-color, 20%)'; +// '@slider-handle-color-focus-shadow': 'tint(@primary-color, 50%)'; +// '@slider-handle-color-tooltip-open': '@primary-color'; +// '@slider-dot-border-color': '@border-color-split'; +// '@slider-dot-border-color-active': 'tint(@primary-color, 50%)'; +// '@slider-disabled-color': '@disabled-color'; +// '@slider-disabled-background-color': '@component-background'; + +// Collapse +// --- +// '@collapse-header-padding': '12px 0 12px 40px'; +// '@collapse-header-bg': '@background-color-light'; +// '@collapse-content-padding': '@padding-md'; +// '@collapse-content-bg': '@component-background'; + + + + }, + })(config, env); + return config; +}; \ No newline at end of file diff --git a/docker-compose-prod.yml b/docker-compose-prod.yml new file mode 100644 index 0000000..434f58e --- /dev/null +++ b/docker-compose-prod.yml @@ -0,0 +1,25 @@ +version: '3.5' +services: + prod-build: + container_name: prod-build + env_file: + - .env + environment: + - NODE_ENV=production + build: + context: . + dockerfile: Dockerfile + args: + # - REACT_APP_DOMAIN=http://mobilecorelb-1807532632.ap-southeast-1.elb.amazonaws.com/ + # - REACT_APP_DOMAIN=https://mobilelink.unioil.com + - REACT_APP_DOMAIN=https://mobileapi.unioilapps.com + - REACT_APP_PATH=api/cms + - REACT_APP_IMG_PATH=unioilQA/ + restart: always + ports: + - 8089:80 + volumes: + - '.:/usr/src/app' + - '/usr/src/app/node_modules' + + diff --git a/docker-compose-public.yml b/docker-compose-public.yml new file mode 100644 index 0000000..9ca6743 --- /dev/null +++ b/docker-compose-public.yml @@ -0,0 +1,24 @@ +version: '3.5' +services: + public-build: + container_name: public-build + env_file: + - .env + environment: + - NODE_ENV=production + build: + context: . + dockerfile: Dockerfile + args: + - REACT_APP_PUBLIC=true + # - PUBLIC_URL=/paypal + - REACT_APP_DOMAIN=https://mobileapid.unioil.com + - REACT_APP_PATH=api/cms + - REACT_APP_IMG_PATH=unioilQA + - GENERATE_SOURCEMAP=false + restart: always + ports: + - 8095:80 + volumes: + - '.:/usr/src/app' + - '/usr/src/app/node_modules' \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d61d0ca --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,80 @@ +version: '3.5' +services: + test-build: + container_name: test-build + env_file: + - .env + environment: + - NODE_ENV=production + build: + context: . + dockerfile: Dockerfile + args: + - REACT_APP_DOMAIN=http://192.168.0.68 + - REACT_APP_PATH=unioilQA/public/index.php/api/cms + - REACT_APP_IMG_PATH=unioilQA/ + restart: always + ports: + - 8089:80 + volumes: + - '.:/usr/src/app' + - '/usr/src/app/node_modules' + dev-build: + container_name: dev-build + env_file: + - .env + environment: + - NODE_ENV=production + build: + context: . + dockerfile: Dockerfile + args: + - REACT_APP_DOMAIN=http://192.168.0.68 + - REACT_APP_PATH=UniOilLoyaltyApp-BackEnd/public/index.php/api/cms + - REACT_APP_IMG_PATH=UniOilLoyaltyApp-BackEnd + restart: always + ports: + - 8081:80 + volumes: + - '.:/usr/src/app' + - '/usr/src/app/node_modules' + public-dev-build: + container_name: public-dev-build + env_file: + - .env + environment: + - NODE_ENV=production + build: + context: . + dockerfile: Dockerfile + args: + - REACT_APP_PUBLIC=true + - REACT_APP_DOMAIN=http://192.168.0.68 + - REACT_APP_PATH=UniOilLoyaltyApp-BackEnd/public/index.php/api/cms + - REACT_APP_IMG_PATH=UniOilLoyaltyApp-BackEnd/ + restart: always + ports: + - 8093:80 + volumes: + - '.:/usr/src/app' + - '/usr/src/app/node_modules' + public-test-build: + container_name: public-test-build + env_file: + - .env + environment: + - NODE_ENV=production + build: + context: . + dockerfile: Dockerfile + args: + - REACT_APP_PUBLIC=true + - REACT_APP_DOMAIN=http://192.168.0.68 + - REACT_APP_PATH=unioilQA/public/index.php/api/cms + - REACT_APP_IMG_PATH=unioilQA + restart: always + ports: + - 8090:80 + volumes: + - '.:/usr/src/app' + - '/usr/src/app/node_modules' \ No newline at end of file diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..b91061d --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "es2015", + "baseUrl": "src", + }, + "exclude": [ + "node_modules", + "build", + "public", + "__test__" + ] +} \ No newline at end of file diff --git a/json-server/db.json b/json-server/db.json new file mode 100644 index 0000000..b17143f --- /dev/null +++ b/json-server/db.json @@ -0,0 +1,278 @@ +{ + "posts": [ + { + "id": 1441, + "title": "11-json-server", + "author": "11-server-deauthor" + }, + { + "title": "14-Title", + "author": "14-Title Data", + "id": 4414 + }, + { + "title": "tes wafe", + "author": "weataewtaew", + "id": 1446 + }, + { + "title": "1-json-server-test", + "author": "werewrwe", + "id": 1447 + }, + { + "id": 447, + "title": "7-json-server", + "author": "7-server-deauthor" + }, + { + "id": 449, + "title": "9-json-server", + "author": "9-tserver-deauthor" + }, + { + "id": 14440, + "title": "10-json-server", + "author": "10-server-deauthor" + }, + { + "id": 1441, + "title": "11-json-server", + "author": "11-server-deauthor" + }, + { + "id": 12443, + "title": "12-json-server", + "author": "12-server-deauthor" + }, + { + "title": "tes", + "author": "ewrwer", + "id": 1334444 + }, + { + "title": "14-Title", + "author": "14-Title Data", + "id": 143444 + }, + { + "title": "fytyiftyfy", + "author": "ftftcftc", + "id": 15344 + }, + { + "title": "tes wafe", + "author": "weataewtaew", + "id": 163444 + }, + { + "title": "1-json-server-test", + "author": "werewrwe", + "id": 17344 + }, + { + "id": 744, + "title": "7-json-server", + "author": "7-server-deauthor" + }, + { + "id": 944, + "title": "9-json-server", + "author": "9-tserver-deauthor" + }, + { + "id": 104, + "title": "10-json-server", + "author": "10-server-deauthor" + }, + { + "id": 141, + "title": "11-json-server", + "author": "11-server-deauthor" + }, + { + "id": 1244, + "title": "12-json-server", + "author": "12-server-deauthor" + }, + { + "title": "tes", + "author": "ewrwer", + "id": 1344 + }, + { + "title": "14-Title", + "author": "14-Title Data", + "id": 1444 + }, + { + "title": "fytyiftyfy", + "author": "ftftcftc", + "id": 1544 + }, + { + "title": "tes wafe", + "author": "weataewtaew", + "id": 164 + }, + { + "title": "1-json-server-test", + "author": "werewrwe", + "id": 1744 + }, + { + "id": 744, + "title": "7-json-server", + "author": "7-server-deauthor" + }, + { + "id": 944, + "title": "9-json-server", + "author": "9-tserver-deauthor" + }, + { + "id": 1044, + "title": "10-json-server", + "author": "10-server-deauthor" + }, + { + "id": 1144, + "title": "11-json-server", + "author": "11-server-deauthor" + }, + { + "id": 12344, + "title": "12-json-server", + "author": "12-server-deauthor" + }, + { + "title": "tes", + "author": "ewrwer", + "id": 13344 + }, + { + "title": "14-Title", + "author": "14-Title Data", + "id": 14344 + }, + { + "title": "fytyiftyfy", + "author": "ftftcftc", + "id": 15344 + }, + { + "title": "tes wafe", + "author": "weataewtaew", + "id": 16344 + }, + { + "title": "1-json-server-test", + "author": "werewrwe", + "id": 17344 + }, + { + "id": 744, + "title": "7-json-server", + "author": "7-server-deauthor" + }, + { + "id": 944, + "title": "9-json-server", + "author": "9-tserver-deauthor" + }, + { + "id": 1044, + "title": "10-json-server", + "author": "10-server-deauthor" + }, + { + "id": 114444, + "title": "11-json-server", + "author": "11-server-deauthor" + }, + { + "id": 1244, + "title": "12-json-server", + "author": "12-server-deauthor" + }, + { + "title": "tes", + "author": "ewrwer", + "id": 1344 + }, + { + "title": "14-Title", + "author": "14-Title Data", + "id": 1444 + }, + { + "title": "fytyiftyfy", + "author": "ftftcftc", + "id": 1544 + }, + { + "title": "tes wafe", + "author": "weataewtaew", + "id": 1644 + }, + { + "title": "1-json-server-test", + "author": "werewrwe", + "id": 174 + }, + { + "id": 744, + "title": "7-json-server", + "author": "7-server-deauthor" + }, + { + "id": 944, + "title": "9-json-server", + "author": "9-tserver-deauthor" + }, + { + "id": 104, + "title": "10-json-server", + "author": "10-server-deauthor" + }, + { + "id": 114, + "title": "11-json-server", + "author": "11-server-deauthor" + }, + { + "id": 1234, + "title": "12-json-server", + "author": "12-server-deauthor" + }, + { + "title": "tes", + "author": "ewrwer", + "id": 1334 + }, + { + "title": "14-Title", + "author": "14-Title Data", + "id": 1434 + }, + { + "title": "fytyiftyfy", + "author": "ftftcftc", + "id": 15344 + }, + { + "title": "tes wafe", + "author": "weataewtaew", + "id": 1634 + }, + { + "title": "1-json-server-test", + "author": "werewrwe", + "id": 1734 + } + ], + "comments": [], + "profile": { + "name": "typicode" + } +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..c98c1a2 --- /dev/null +++ b/package.json @@ -0,0 +1,65 @@ +{ + "name": "my-app", + "version": "0.1.0", + "private": true, + "dependencies": { + "@ant-design/icons": "4.0.0", + "@react-google-maps/api": "^1.9.7", + "antd": "^3.9.1", + "antd-input-password": "^0.3.0", + "axios": "^0.18.0", + "crypto-js": "^3.1.9-1", + "dsbridge": "^3.1.3", + "filesize": "^3.6.1", + "formik": "^1.2.0", + "history": "^4.7.2", + "js-file-download": "^0.4.4", + "libsodium-wrappers": "^0.7.3", + "moment": "^2.27.0", + "query-string": "^5.1.1", + "react": "^16.7.0", + "react-copy-to-clipboard": "^5.0.1", + "react-csv": "^2.0.3", + "react-csv-reader": "^3.1.0", + "react-device-detect": "^1.6.1", + "react-dom": "^16.5.0", + "react-geocode": "^0.2.1", + "react-google-autocomplete": "^1.2.6", + "react-google-map": "^3.1.1", + "react-google-maps": "^9.4.5", + "react-helmet": "^5.2.0", + "react-idle-timer": "^4.0.9", + "react-input-mask": "^2.0.4", + "react-loadable": "^5.5.0", + "react-papaparse": "^3.7.1", + "react-redux": "^5.0.7", + "react-router-dom": "^4.2.2", + "react-router-redux": "^4.0.8", + "react-scripts": "1.1.5", + "redux": "^4.0.0", + "redux-logger": "^3.0.6", + "redux-saga": "^0.16.0", + "styled-components": "^3.4.5", + "universal-cookie": "3.0.4", + "yup": "^0.26.3" + }, + "scripts": { + "start": "react-app-rewired start", + "build": "react-app-rewired build", + "test": "react-app-rewired test --env=jsdom", + "eject": "react-app-rewired eject", + "dev": "docker-compose up -d --build", + "dev:stop": "docker-compose down", + "prod": "docker-compose -f docker-compose-prod.yml up -d --build", + "prod:stop": "docker-compose -f docker-compose-prod.yml down", + "flow": "flow" + }, + "devDependencies": { + "babel-plugin-import": "^1.7.0", + "debug": "^3.1.0", + "flow-bin": "0.80.0", + "less-plugin-variables-output": "^1.2.0", + "react-app-rewire-less": "^2.1.3", + "react-app-rewired": "^1.6.2" + } +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/public/favicon_unioil.ico b/public/favicon_unioil.ico new file mode 100644 index 0000000000000000000000000000000000000000..3aded25072e629da4b0c922703906c269460ecbd GIT binary patch literal 16958 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 + + + + + + + + + + React App + + + +
+ + + + diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..f5b7988 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon_unioil.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": "./index.html", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/src/App.js b/src/App.js new file mode 100644 index 0000000..d3a1401 --- /dev/null +++ b/src/App.js @@ -0,0 +1,215 @@ +import React, { Component, Fragment } from 'react'; +import { BrowserRouter as Router, Route, Redirect, Switch, withRouter } from 'react-router-dom'; +import Loadable from 'react-loadable'; +import { connect } from 'react-redux'; + +import LoginLayoutRoute from './components/Login/Routes'; +import DashboardRoute from './components/Dashboard/Routes'; +import Loading from './components/Loading'; + +import { getCookie } from './utils/cookie'; +import { customAction } from './actions'; +import { API_UNI_OIL, API_POST } from 'utils/Api'; + +const AsyncLogin = Loadable({ + loader: () => import('./containers/public/Login'), + loading: Loading, +}); + +const AsyncRegistration = Loadable({ + loader: () => import('./containers/public/Registration'), + loading: Loading, +}); + +const AsyncChangePassword = Loadable({ + loader: () => import('./containers/public/ChangePassword'), + loading: Loading, +}); + +const AsyncPublicTopSuccessPage = Loadable({ + loader: () => import('./containers/public/PublicTopSuccessPage'), + loading: () => { + return null; + }, +}); + +const AsyncPublicTopErrorPage = Loadable({ + loader: () => import('./containers/public/PublicTopErrorPage'), + loading: () => { + return null; + }, +}); + +const AsyncMyProfile = Loadable({ + loader: () => import('./containers/private/MyProfile'), + loading: Loading, +}); + +const AsyncNotification = Loadable({ + loader: () => import('./containers/private/Notifications'), + loading: Loading, +}); + +const AsyncUserManagement = Loadable({ + loader: () => import('./containers/private/UserManagement'), + loading: Loading, +}); + +const AsyncMemberManagement = Loadable({ + loader: () => import('./containers/private/MemberManagement'), + loading: Loading, +}); + +const AsyncPhotoSlider = Loadable({ + loader: () => import('./containers/private/HomePage/PhotoSlider'), + loading: Loading, +}); + +const AsyncPromotions = Loadable({ + loader: () => import('./containers/private/Promotions'), + loading: Loading, +}); + +const AsyncTopUp = Loadable({ + loader: () => import('./containers/private/TopUp'), + loading: Loading, +}); + +const AsyncCardTypes = Loadable({ + loader: () => import('./containers/private/AboutUs'), + loading: Loading, +}); + +const AsyncReports = Loadable({ + loader: () => import('./containers/private/Reports'), + loading: Loading, +}); + +const AsyncSystemPreferences = Loadable({ + loader: () => import('./containers/private/SystemPreferences'), + loading: Loading, +}); + +const AsyncPage404 = Loadable({ + loader: () => import('./components/PageError/404'), + loading: Loading, +}); +const AsyncLocator = Loadable({ + loader: () => import('./containers/private/StationLocator/Location'), + loading: Loading, +}); +const AsyncBranches = Loadable({ + loader: () => import('./containers/private/StationLocator/Branches'), + loading: Loading, +}) + +const AsyncFuels = Loadable({ + loader: () => import('./containers/private/StationLocator/Fuels'), + loading: Loading, +}) + +const CaptureRouteNotFound = withRouter(({ children, location }) => { + return location && location.state && location.state.pageNotFound ? : children; +}); + +const publicRoutes = [ + '/', + '/login', + '/registration', + '/forgot-password', + '/change-password', + '/topup-success-page', + '/topup-error-page', +]; + +class App extends Component { + state = { + accessAuth: false, + mounting: true, + }; + + componentDidMount = async () => { + if (getCookie('TOKEN')) { + let { history, customAction } = this.props; + let { replace, location } = history; + + API_UNI_OIL.defaults.headers.common['Authorization'] = `Bearer ${getCookie('TOKEN').token}`; + //customAction({type: 'LOGIN_SUCCESS' }); + + try { + let response = await API_POST(`adminProfile`); + response.data.data['userInfo'] = { ...response.data.data }; + + customAction({ + type: 'LOGIN_SUCCESS', + payload: { ...response.data.data }, + }); + } catch ({ response: error }) { + //notification.error({ message: "Error", description: "Something went wrong loading user data." , duration: 20, }); + } + + if (publicRoutes.includes(location.pathname)) replace('/user-management'); + } + this.setState({ mounting: false }); + }; + + render() { + console.log('===================================='); + console.log(process.env.REACT_APP_API, process.env.REACT_APP_IMG_URL, process.env.REACT_APP_PUBLIC, 'API LIST!!!'); + console.log('===================================='); + if (this.state.mounting) return null; + + if (process.env.REACT_APP_PUBLIC === 'false') { + return ( + + + + + + + {/* PRIVATE ROUTES */} + + + + + + + + + + + + + + + + + + + + ); + } else { + return ( + + + + + + + + + + + ); + } + } +} + +App = connect( + (state) => ({ + isAuthenticated: state.auth.isAuthenticated, + }), + { customAction } +)(App); + +export default withRouter(App); diff --git a/src/App.test.js b/src/App.test.js new file mode 100644 index 0000000..a754b20 --- /dev/null +++ b/src/App.test.js @@ -0,0 +1,9 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import App from './App'; + +it('renders without crashing', () => { + const div = document.createElement('div'); + ReactDOM.render(, div); + ReactDOM.unmountComponentAtNode(div); +}); diff --git a/src/actions/index.js b/src/actions/index.js new file mode 100644 index 0000000..004fb73 --- /dev/null +++ b/src/actions/index.js @@ -0,0 +1,6 @@ +export function customAction({type, payload}) { + return { + type: type, + payload + }; +} \ No newline at end of file diff --git a/src/assets/img/bg_cms.png b/src/assets/img/bg_cms.png new file mode 100644 index 0000000000000000000000000000000000000000..f802658f39c44cb9b1e00cd2479a31a16635cc7d GIT binary patch literal 229484 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
t5n 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%0DS41+bh2{zO8OM( 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
+
+ +
+ + + {columns && + columns.map(column => ( + + ))} + { + actions && actions.length > 0 && ( + + actions.map(item => { + return item.access === true && this.handleRenderActionButton({action: item, item: record}) + }) + + )} + + + /> + + + } + + + +
+ + col-12 + + + + + +
+ ); + } +} + +export default withRouter(CustomTable); diff --git a/src/components/Dashboard/Layout/components/HeaderDropdown.js b/src/components/Dashboard/Layout/components/HeaderDropdown.js new file mode 100644 index 0000000..16f0261 --- /dev/null +++ b/src/components/Dashboard/Layout/components/HeaderDropdown.js @@ -0,0 +1,90 @@ +import React, { Component } from "react"; +import { Icon, Avatar, Dropdown, Menu, notification } from "antd"; +import { Link, withRouter } from "react-router-dom"; +import Helmet from 'react-helmet'; + +import { connect } from "react-redux"; +import { customAction } from 'actions' +import styled from 'styled-components'; + +import { API_UNI_OIL , API_POST } from 'utils/Api' + +const HeaderButton = styled.a` + /* This renders the buttons above... Edit me! */ + padding: 0 10px; + display: inline-block; + vertical-align: top; + + + cursor: pointer; + -webkit-transition: all .3s,padding 0s; + transition: all .3s,padding 0s; + + &:hover { + background-color: rgb(243, 243, 243); + color: #fff + } +` + + +class HeaderDropdown extends Component { + state = { + } + + + handleLogout = () => { + this.props.customAction({type: 'LOGOUT'}); + } + + render() { + + //const { userInfo } = this.state + const { history, userInfo } = this.props; + + const menu = ( + + + history.push("/my-profile")} + role="button" + rel="noopener noreferrer" > + My Profile + + + + + + Logout + + + + ); + return ( +
+ + + + { userInfo && (`${userInfo.firstname} ${userInfo.lastname}`) } + + +
+ ); + } +} + +HeaderDropdown = connect( + state => ({ + //fetchData: state.fetchData + // put initial values from account reducer + }), + { customAction } +)(HeaderDropdown) + +export default withRouter(HeaderDropdown); diff --git a/src/components/Dashboard/Layout/components/MainBreadcrumbs.js b/src/components/Dashboard/Layout/components/MainBreadcrumbs.js new file mode 100644 index 0000000..13a1a4a --- /dev/null +++ b/src/components/Dashboard/Layout/components/MainBreadcrumbs.js @@ -0,0 +1,75 @@ +import React from "react"; +import { Breadcrumb, Icon } from 'antd'; + +// import styled from 'styled-components'; +import { Link, withRouter } from 'react-router-dom'; + + +function MainBreadcrumbs(props) { + const { + pageRoutes, + // match, + location, + root + } = props; + + const pathSnippets = location.pathname.split('/').filter(i => i); + const extraBreadcrumbItems = pathSnippets.map((route, index) => { + const url = `/${pathSnippets.slice(0, index + 1).join('/')}`; + const routeCompare = pageRoutes.find((myRoute) => myRoute.path === url) + const paramsId = pathSnippets[pathSnippets.length - 1] + + if (routeCompare) { + if (routeCompare.params) { + return ( + + + {routeCompare.name} + + + ); + } else { + return ( + + + {routeCompare.name} + + + ); + } + } + + // return ; + }) + if (root) { + return ( + } + routeComparestyle={{ padding: '11px 24px 9px', fontSize: '12px' }} + > + + + {` Home`} + + + + ); + } else { + return ( + } + style={{ padding: '11px 24px 9px', fontSize: '12px' }} + > + + + {` Home`} + + + {extraBreadcrumbItems} + + ); + } + +} + +export default withRouter(MainBreadcrumbs); \ No newline at end of file diff --git a/src/components/Dashboard/Layout/components/MainContent.js b/src/components/Dashboard/Layout/components/MainContent.js new file mode 100644 index 0000000..ad7e998 --- /dev/null +++ b/src/components/Dashboard/Layout/components/MainContent.js @@ -0,0 +1,36 @@ +import React from "react"; +import { Layout } from 'antd'; +import { withRouter } from 'react-router-dom' + +import MainBreadcrumbs from './MainBreadcrumbs' +const { Content } = Layout; + +function MainContent(props) { + const { + children, + pageRoutes, + root + } = props; + + return ( + [ + props.location && props.location.key && ( +
+ +
+ ) + , + + {children} + , + ] + ); +} + +export default withRouter(MainContent); \ No newline at end of file diff --git a/src/components/Dashboard/Layout/components/MainFooter.js b/src/components/Dashboard/Layout/components/MainFooter.js new file mode 100644 index 0000000..908d218 --- /dev/null +++ b/src/components/Dashboard/Layout/components/MainFooter.js @@ -0,0 +1,19 @@ +import React from "react"; +import { Layout } from "antd"; + +// import styled from 'styled-components'; +// import { Link } from 'react-router-dom'; + +const { Footer } = Layout; + +function MainFooter(props) { + // const {} = props; + + return ( +
+ {/* YONDU-SDG ©2018 Created by Front End Team! */} +
+ ); +} + +export default MainFooter; diff --git a/src/components/Dashboard/Layout/components/MainHeader.js b/src/components/Dashboard/Layout/components/MainHeader.js new file mode 100644 index 0000000..74e8aed --- /dev/null +++ b/src/components/Dashboard/Layout/components/MainHeader.js @@ -0,0 +1,83 @@ +import React from "react"; +import { Layout, Icon } from "antd"; +import { connect } from "react-redux"; +import styled from 'styled-components'; + +import { Link } from 'react-router-dom'; +import HeaderDropdown from './HeaderDropdown'; + +const { Header } = Layout; + + +const HeaderLink = styled(Link)` + /* This renders the buttons above... Edit me! */ + padding: 0 10px; + display: inline-block; + vertical-align: top; + + + cursor: pointer; + -webkit-transition: all .3s,padding 0s; + transition: all .3s,padding 0s; + + &:hover { + background-color: #1890ff; + color: #fff + } +` + + + + +const RightHeader = styled.div` + /* This renders the buttons above... Edit me! */ + float: right; + + +` + +const IconTrigger = styled(Icon)` + /* This renders the buttons above... Edit me! */ + font-size: 20px; + line-height: 69px; + cursor: pointer; + -webkit-transition: all .3s,padding 0s; + transition: all .3s,padding 0s; + padding: 0 24px; + + &:hover { + color: #1890ff; + } +` + +function MainHeader(props) { + const { + collapsed, + toggle, + userInfo, + } = props + + return ( +
+ + + + +
+ ); +} + + +MainHeader = connect( + state => ({ + + // pull initial values from account reducer + }), + // { customAction } +)(MainHeader); + +export default MainHeader; diff --git a/src/components/Dashboard/Layout/components/MainSidebar.js b/src/components/Dashboard/Layout/components/MainSidebar.js new file mode 100644 index 0000000..f919a68 --- /dev/null +++ b/src/components/Dashboard/Layout/components/MainSidebar.js @@ -0,0 +1,262 @@ +import React from 'react'; +import { Layout, Icon, Menu } from 'antd'; +import styled from 'styled-components'; +import { withRouter, Link } from 'react-router-dom'; + +const { SubMenu } = Menu; +const { Sider } = Layout; + +const LogoPlaceholder = styled.div` + height: 32px; + margin: 16px; + + background-repeat: no-repeat; + background-size: contain; + background-position: center; +`; + +function MainSidebar(props) { + const { collapsed, match, location, userInfo, systemPreferences } = props; + + const navigation = [ + { + key: 0, + label: 'User Management', + path: '/user-management', + icon: 'team', + access: userInfo && userInfo.role == 1 ? true : false, + //access: userInfo && (userInfo.role == 1 || userInfo.role == 3) ? true : false, + }, + { + key: 9, + label: 'Notifications', + path: '/notifications', + icon: 'notification', + access: true, + //access: userInfo && (userInfo.role == 1 || userInfo.role == 3) ? true : false, + }, + { + key: 4, + label: 'Member Management', + path: '/member-management', + icon: 'credit-card', + access: userInfo && userInfo.role == 1 ? true : false, + child: [ + { + key: 0.0, + label: 'Card Member', + path: '/member-management/card-member', + access: true, + }, + { + key: 0.1, + label: 'Locked Accounts', + path: '/member-management/lock-account', + access: true, + }, + ], + }, + { + key: 8, + label: 'Home Page ( Mobile ) ', + path: '/home-page', + icon: 'home', + access: true, + child: [ + { + key: 0.0, + label: 'Photo Slider', + path: '/home-page/photo-slider', + access: true, + }, + ], + }, + { + key: 3, + label: 'Promotions', + path: '/promotions', + icon: 'tags', + access: true, + }, + + { + key: 2, + label: 'Top-Up', + path: '/top-up', + icon: 'plus-circle', + access: userInfo && userInfo.role == 1 ? true : false, + }, + { + key: 6, + label: 'About Us', + path: '/about-us', + icon: 'info-circle', + access: userInfo && userInfo.role == 1 ? true : false, + child: [ + { + key: 0.6, + label: 'Card Types', + path: '/about-us/card-types', + access: true, + }, + { + key: 0.5, + label: 'Terms & Privacy', + path: '/about-us/term-privacy', + access: true, + }, + ], + }, + { + key: 7, + label: 'Reports', + path: '/reports', + icon: 'file-text', + access: true, + child: [ + { + key: 0.7, + label: 'Registration Report', + path: '/reports/registration-report', + access: true, + }, + { + key: 0.8, + label: 'Top-Up Usage Report', + path: '/reports/top-up', + access: true, + }, + { + key: 0.9, + label: 'Mobile Usage Report', + path: '/reports/mobile-report', + access: true, + }, + { + key: 0.1, + label: 'Station Rating Report', + path: '/reports/station-rating', + access: true, + }, + ], + }, + { + key: 8, + label: 'System Parameters', + path: '/system-parameters', + icon: 'setting', + access: userInfo && userInfo.role == 1 ? true : false, + }, + { + key: 12, + label: 'Station Locator', + path:'', + icon:'environment', + access: true, + child: [ + { + key: 0.11, + label: 'Branches', + path:'/branches', + access: true + }, + { + key: 0.12, + label: 'Stations', + path:'/stations', + access: true + }, + { + key: 0.13, + label: 'Fuels', + path:'/fuels', + access: true + } + ], + }, + ]; + + let newURL = location.pathname.split('/'); + let appendedUrl = newURL[2]; + if (appendedUrl == 'create' || appendedUrl == 'view' || appendedUrl == 'edit') appendedUrl = null; + let isSeondDaryPathExist = appendedUrl ? `/${appendedUrl}` : ''; + let secondaryURL = `${match.path}${isSeondDaryPathExist}`; + + return ( + + {!collapsed ? ( +
+ {/* */} + {userInfo && ( + + )} +
+ ) : ( + + )} + + + {navigation.map((item) => { + if (item.access) { + if (item.child) { + return ( + + + {item.label} + + } + > + {item.child.map((subItem) => { + if (subItem.access) { + return ( + + + {subItem.icon && } + {subItem.label} + + + ); + } else { + return null; + } + })} + + ); + } else { + return ( + + + {item.icon && } + {item.label} + + + ); + } + } else { + return null; + } + })} + +
+ ); +} + +export default withRouter(MainSidebar); diff --git a/src/components/Dashboard/Layout/index.js b/src/components/Dashboard/Layout/index.js new file mode 100644 index 0000000..efa5fc7 --- /dev/null +++ b/src/components/Dashboard/Layout/index.js @@ -0,0 +1,107 @@ + +import React from 'react' +import { Layout } from 'antd'; +import { notification } from "antd"; +import { connect } from 'react-redux'; +import IdleTimer from 'react-idle-timer' + +import MainFooter from './components/MainFooter' +import MainHeader from './components/MainHeader' +import MainSidebar from './components/MainSidebar' + +import { API_UNI_OIL , API_POST } from 'utils/Api' +import { customAction } from 'actions' + +class DashboardLayout extends React.Component { + + + constructor(props) { + super(props) + this.idleTimer = null + this.onActive = this.handleActive.bind(this) + this.onIdle = this.handleIdle.bind(this) + + this.state = { + collapsed: false, + userInfo: null, + updatedLogo: null + }; + } + + componentWillReceiveProps(nexProps, prevProps) { + if(nexProps && nexProps.systemPreferences) { + if(nexProps.systemPreferences.data && nexProps.systemPreferences.data) { + this.setState({ + updatedLogo: nexProps.systemPreferences.data.logo + }) + } + } + } + + componentDidUpdate(nexProps) { + + } + + handleActive(e) { + // console.log('user is active', e) + } + + handleIdle(e) { + // console.log('user is idle', e) + notification.error({ + message: "Error", + description:
You are logout automatically for being idle more than 10 minutes.
, + duration: 0, + key: 'idle-notification-1' + }); + this.props.customAction({type: 'LOGOUT'}); + } + + toggle = () => { + this.setState({ + collapsed: !this.state.collapsed, + }); + } + render() { + + //const { userInfo } = this.state + const { children, userInfo } = this.props + + return ( + + + + +
+ { this.idleTimer = ref }} + element={document} + onActive={this.onActive} + onIdle={this.onIdle} + timeout={600000} + > + {children} + +
+
+
+ ); + } +} + + + +DashboardLayout = connect( + state => ({ + // pull initial values from account reducer + userInfo: state.login, + systemPreferences: state.systemPreferences + }), + { customAction } +)(DashboardLayout); + +export default DashboardLayout \ No newline at end of file diff --git a/src/components/Dashboard/Routes/index.js b/src/components/Dashboard/Routes/index.js new file mode 100644 index 0000000..690ec11 --- /dev/null +++ b/src/components/Dashboard/Routes/index.js @@ -0,0 +1,31 @@ +import React from 'react'; +import DashboardLayout from '../Layout' +import { Route, Redirect } from 'react-router-dom' +import { connect } from 'react-redux' + + +function DashboardRoute({ component: Component, isAuthenticated, ...rest }) { + return ( + isAuthenticated ? ( + + + + ) : + } + /> + ) +}; + +export default DashboardRoute = connect( + state => ({ + isAuthenticated: state.auth.isAuthenticated + }), +)(DashboardRoute); + + + \ No newline at end of file diff --git a/src/components/DataDisplay/List.js b/src/components/DataDisplay/List.js new file mode 100644 index 0000000..8a290ad --- /dev/null +++ b/src/components/DataDisplay/List.js @@ -0,0 +1,48 @@ +import React, { Component, Fragment } from 'react'; +import { Link } from 'react-router-dom'; +import { List, Avatar } from 'antd'; + +import { fetchData } from 'utils/Api'; + +class ListDataDisplay extends Component { + state = { + data: [] + }; + + async componentDidMount() { + // const { url } = this.props; + // const response = await fetchData(url); + // this.setState({ + // data: response.data + // }) + } + + render() { + const { layout, avatar, viewPath, header, footer } = this.props; + + return ( + + ( + + } + title={{item.first_name}} + description={`${item.first_name.toLowerCase()}_${item.last_name.toLowerCase()}@gmail.com`} + /> + + )} + /> + + ) + } +} + + +export default ListDataDisplay; \ No newline at end of file diff --git a/src/components/DataDisplay/index.js b/src/components/DataDisplay/index.js new file mode 100644 index 0000000..0279445 --- /dev/null +++ b/src/components/DataDisplay/index.js @@ -0,0 +1,5 @@ +import List from './List'; + +export { + List, +} \ No newline at end of file diff --git a/src/components/Dropdown/DropdownExport.js b/src/components/Dropdown/DropdownExport.js new file mode 100644 index 0000000..b660ae7 --- /dev/null +++ b/src/components/Dropdown/DropdownExport.js @@ -0,0 +1,66 @@ +import React, { PureComponent } from "react"; +import { withRouter } from "react-router-dom"; +import { Menu, Dropdown, Button, notification } from "antd"; +import DownloadFile from "js-file-download"; +import queryString from "query-string"; +import moment from 'moment'; + +import { API_UNI_OIL } from "utils/Api"; + +class DropdownExport extends PureComponent { + state = { + loading: false + } + + handleExportCSV = async() => { + this.setState({ loading: true }); + + let { location } = this.props; + let { search } = location; + let params = queryString.parse(search); + + if(this.props.defaultFilter){ + params = { + ...params, + ...this.props.defaultFilter + } + } + + try { + + let response = await API_UNI_OIL.get(this.props.url.path, { + params, + responseType: 'blob' + }); + + if (response.status === 200 || response.status === 201) { + //let dateNow = moment(new Date()).format('DD-MMM-YYYY') + let dateNow = moment(new Date()).format('MMDDYYYY') + DownloadFile(response.data, `${this.props.url.fileName}_${dateNow}.csv`); + + this.setState({ loading: false }); + } + + } catch (error) { + this.setState({ loading: false }); + } + + } + + render() { + + const { loading } = this.state; + + return( + + ) + } +} + +export default withRouter(DropdownExport); \ No newline at end of file diff --git a/src/components/Dropdown/index.js b/src/components/Dropdown/index.js new file mode 100644 index 0000000..2a75bdd --- /dev/null +++ b/src/components/Dropdown/index.js @@ -0,0 +1 @@ +export { default as DropdownExport } from "./DropdownExport"; \ No newline at end of file diff --git a/src/components/Forms/AdvanceSearchFilter.js b/src/components/Forms/AdvanceSearchFilter.js new file mode 100644 index 0000000..b7cb02b --- /dev/null +++ b/src/components/Forms/AdvanceSearchFilter.js @@ -0,0 +1,69 @@ +import React, { Component } from 'react'; +//import { Field, reduxForm } from 'redux-form'; +import { Form, Row, Col, Button, Icon, Input,Select } from 'antd'; + +import { required } from 'constants/validation'; +import {AInput,ASelect,ARangePicker} from './AntdForms' + +const FormItem = Form.Item; +const { Option } = Select; + +class AdvancedSearchForm extends Component { + render() { + + const { handleSubmit,onSubmit, reset } = this.props; + + return ( +
+ + + {/* + + + + */} + + + {/* e.preventDefault()} + onBlur={e => e.preventDefault()} + // validate={required} + /> */} + + + + + + + + + +
+ ); + } +} + + +// AdvancedSearchForm = reduxForm({ +// form: "CreateEmployeeFieldsForm", +// })(AdvancedSearchForm); + +export default AdvancedSearchForm; + diff --git a/src/components/Forms/AntdForms.js b/src/components/Forms/AntdForms.js new file mode 100644 index 0000000..f594b64 --- /dev/null +++ b/src/components/Forms/AntdForms.js @@ -0,0 +1,47 @@ +import React from "react"; +import { Form, Input, Radio, Select, Checkbox, Button, DatePicker } from "antd"; + +const FormItem = Form.Item; +const RadioGroup = Radio.Group; +const { Option } = Select; +const { TextArea } = Input; +const { RangePicker } = DatePicker; + +const formItemLayout = { + // labelCol: { + // xs: { span: 24 }, + // sm: { span: 7 } + // }, + // wrapperCol: { + // xs: { span: 24 }, + // sm: { span: 14 } + // } +}; + + + +const makeField = Component => ({ input, meta, children, hasFeedback, label, ...rest }) => { + const hasError = meta.touched && meta.invalid; + const inputs = {...input}; + const rests = {...rest}; + console.log(inputs,'inputss', rests , 'ressttss') + return ( + + + + ); + }; + +export const AInput = makeField(Input); +export const ARadioGroup = makeField(RadioGroup); +export const ASelect = makeField(Select); +export const ACheckbox = makeField(Checkbox); +export const ATextarea = makeField(TextArea); +export const ARangePicker = makeField(RangePicker); + diff --git a/src/components/Forms/Cascader.js b/src/components/Forms/Cascader.js new file mode 100644 index 0000000..63a9d5e --- /dev/null +++ b/src/components/Forms/Cascader.js @@ -0,0 +1,67 @@ +import React, { Component } from 'react'; +import { Form, Cascader } from 'antd'; +import { fetchData } from 'utils/Api'; +const FormItem = Form.Item; + +const options = [{ + value: 'zhejiang', + label: 'Zhejiang', + children: [{ + value: 'hangzhou', + label: 'Hangzhou', + children: [{ + value: 'xihu', + label: 'West Lake', + }], + }], +}, { + value: 'jiangsu', + label: 'Jiangsu', + children: [{ + value: 'nanjing', + label: 'Nanjing', + children: [{ + value: 'zhonghuamen', + label: 'Zhong Hua Men', + }], + }], +}]; + +class CascaderForm extends Component { + async componentDidMount() { + const { url } = this.props; + const response = await fetchData(url); + this.setState({ + options: response.data.data + }) + } + + render() { + const { + field: { name, /* ...field */ }, + form: { errors, setFieldValue, /* ...form */ }, + layout, + label, + required, + ...props + } = this.props; + + return ( + + { setFieldValue(name, value) }} + options={options} + /> + + ); + } +} + +export default CascaderForm; \ No newline at end of file diff --git a/src/components/Forms/Checkbox.js b/src/components/Forms/Checkbox.js new file mode 100644 index 0000000..725d10d --- /dev/null +++ b/src/components/Forms/Checkbox.js @@ -0,0 +1,55 @@ +import React from 'react'; +import { Checkbox, Form } from 'antd'; +const FormItem = Form.Item; + +const CheckboxForm = ({ + field: { name, ...field }, + form: { touched, errors, handleChange, setFieldValue, ...form }, + label, + inline, + layout, + required, + ...props, +}) => { + + if (inline) { + return ( + { setFieldValue(name, !field.value) }} + > + {label} + + ) + } else { + return ( + + { setFieldValue(name, !field.value) }} + > + {label} + + + + ); + } + +}; + +export default CheckboxForm; \ No newline at end of file diff --git a/src/components/Forms/DatePicker.js b/src/components/Forms/DatePicker.js new file mode 100644 index 0000000..7eeb02b --- /dev/null +++ b/src/components/Forms/DatePicker.js @@ -0,0 +1,160 @@ +import React from 'react'; +import { Form, DatePicker } from 'antd'; +import moment from 'moment' + +const FormItem = Form.Item; +const { RangePicker } = DatePicker; + +const DatePickerForm = ({ + field: { ...field }, + form: { touched, errors, handleSubmit, setFieldValue, handlePanelChange, ...form }, + type, + layout, + label, + format, + minDateToday, + required, + disabledDateStart, + dateStartEnd, + disabledDateStartEndPhotoSlider, + disabledDateStartEndPhotoSliderEndDate, + isEdit, + isAutoFill, + ...props +}) => { + + const onDateChange = (value, isDateRange = false) => { + + value && setFieldValue(field.name, isDateRange + ? [value[0].format(format), value[1].format(format)] + : value.format(format) + ) + + + if(value == null) { + setFieldValue(field.name, isDateRange + ? [value[0].format(format), value[1].format(format)] + : null + ) + } + + + } + + // Disable date less than `Today` + // use minDateToday props + // const disabledDate = (current) => { + // if (minDateToday) { + // var oneDay = (1 * 24 * 60 * 60 * 1000); + // return current && (current.valueOf() < (Date.now() - oneDay)); + // } + // } + + const disabledDate = (current) => { + // Can not select days before today and today + + // for promotions + if(disabledDateStart && !disabledDateStartEndPhotoSlider) { + if(form.values.date_start) { + return current && current < moment(form.values.date_start); + } else { + //return current && moment(current).add(2,'days') < moment().endOf('day').add(2,'days'); + } + } + // for photo slider Date Start + if(disabledDateStartEndPhotoSlider && !disabledDateStartEndPhotoSliderEndDate) { + if(dateStartEnd) { + if(current && current.format() < moment(dateStartEnd.date_start).format()) { + if(isEdit) { + //return current && current.format() < moment(dateStartEnd.date_start).subtract(1,'days').format() + } + return current && current.format() < moment(dateStartEnd.date_start).format() + } else { + if(isEdit) { + return current && current.format() > moment(dateStartEnd.date_end).format(); + } + //return current && current.format() > moment(dateStartEnd.date_end).add(1,'days').format(); + return current && current.format() > moment(dateStartEnd.date_end).format(); + } + } + } + + // for photo slider date End + if(disabledDateStartEndPhotoSliderEndDate) { + if(dateStartEnd) { + if(current && current.format() < form.values.date_start) { + // disabled previous date + return current && current < moment(form.values.date_start); + } else { + // diabled past date + if(isEdit) { + return current && current.format() > moment(dateStartEnd.date_end).format(); + } + //return current && current.format() > moment(dateStartEnd.date_end).add(1,'days').format(); + return current && current.format() > moment(dateStartEnd.date_end).format(); + } + } + } + + if(disabledDateStart) { + if(dateStartEnd) { + // return + } else { + if(form.values.date_start) { + return current && current < moment(form.values.date_start); + } + } + + } + + } + + let _props = {...props}; let _field = {...field}; + + + if(_field.value !== "") { + _props.value = _field.value && moment(_field.value,format) + } + + return ( + + { type === 'date' && + onDateChange(value)} + format={format} + disabledDate={disabledDateStartEndPhotoSlider || disabledDateStart ? disabledDate : ()=> { return false } } + style={{width: '250px'}} + /> + } + + { type === 'date-time' && + onDateChange(value)} + format={format} + style={{width: '250px'}} + /> + } + + { type === 'range' && + onDateChange(value, true)} + format={format} + disabledDate={disabledDate} + /> + } + + ); +}; + +export default DatePickerForm; \ No newline at end of file diff --git a/src/components/Forms/HeaderForm.js b/src/components/Forms/HeaderForm.js new file mode 100644 index 0000000..7b2a6d8 --- /dev/null +++ b/src/components/Forms/HeaderForm.js @@ -0,0 +1,145 @@ + +import React, { Component } from 'react'; +import { Button,Popconfirm, Icon, Dropdown, Menu } from 'antd'; + + +class HeaderForm extends Component { + + + confirm(action) { + action(); + // message.success('Click on Yes'); + } + + cancel(e) { + // console.log(e); + // message.error('Click on No'); + } + + + render() { + const { action, cancel, deleteAction , title , actionBtnName, cancelBtnName, + deleteBtnName, loading, withConfirm, styleBtn, isDropDown , actionPrivacy, + actionTerms, disabled, withCancelConfirm, isInsideForm } = this.props; + + const menu = ( + + {`Terms & Condition`} + Privacy Policy + + ); + + return ( +
+

{title}

+
+ { + action && +
+ { + withConfirm + ? + ( + this.confirm(action)} + onCancel={this.cancel} okText="Yes" cancelText="No" + title={withConfirm && withConfirm.message} + > + + + ) : + !isDropDown && ( + + ) + } +
+ + } + { + cancel && + + + + } + { + deleteAction && + ( + } + > + + + ) + } + { + isDropDown && ( +
+ + + +
+ ) + } +
+
+ ); + } +} + +export default HeaderForm; \ No newline at end of file diff --git a/src/components/Forms/InputMaskNumber.js b/src/components/Forms/InputMaskNumber.js new file mode 100644 index 0000000..d9b83dd --- /dev/null +++ b/src/components/Forms/InputMaskNumber.js @@ -0,0 +1,37 @@ +import * as React from 'react'; +import { Form, Icon, Input, Row, Col, Button } from 'antd'; +import ReactInputMask from 'react-input-mask'; + +const FormItem = Form.Item; + +const InputNumberForm = ({ + field: { ...field }, + form: { touched, errors, ...form }, + required, + icon, + layout, + withActionBtn, + action, + loading, + mask, + ...props +}) => { + return ( + + + + + ); +}; + +export default InputNumberForm; \ No newline at end of file diff --git a/src/components/Forms/InputNumberAntD.js b/src/components/Forms/InputNumberAntD.js new file mode 100644 index 0000000..8fd5568 --- /dev/null +++ b/src/components/Forms/InputNumberAntD.js @@ -0,0 +1,71 @@ +import React, { Component } from 'react'; +import { Form, Icon, InputNumber } from 'antd'; + + + +const FormItem = Form.Item; + +class InputNumberAntD extends Component { + + handleChange = (value) => { + const { setFieldValue } = this.props.form; + const { name } = this.props.field; + + //let valueNum = parseFloat(value).toFixed(2) + // Add custom action `onChange` + return setFieldValue(name, value); + } + + render() { + const children = []; + + + const { + field: { ...field }, + form: { touched, errors, ...form }, + required, + icon, + layout, + withActionBtn, + action, + min, + max, + step, + ...props + } = this.props; + + const _props = {...props} + + _props.value = field.value + + return ( + + + + value && `${value}`} + //parser={value => value && value.replace('', '')} + // formatter={value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')} + // parser={value => value.replace(/\$\s?|(,*)/g, '')} + onChange={this.handleChange} + /> + + + ); + } +} + +export default InputNumberAntD; \ No newline at end of file diff --git a/src/components/Forms/InputPassword.js b/src/components/Forms/InputPassword.js new file mode 100644 index 0000000..14e189b --- /dev/null +++ b/src/components/Forms/InputPassword.js @@ -0,0 +1,31 @@ +import * as React from 'react'; +import { Form, Icon, Input, Row, Col, Button } from 'antd'; +import InputPassword from 'antd-input-password'; + +const FormItem = Form.Item; + +const InputPasswords = ({ + field: { ...field }, + form: { touched, errors, ...form }, + required, + icon, + layout, + withActionBtn, + action, + ...props +}) => { + return ( + + + + ); +}; + +export default InputPasswords; \ No newline at end of file diff --git a/src/components/Forms/InputTextArea.js b/src/components/Forms/InputTextArea.js new file mode 100644 index 0000000..15b7769 --- /dev/null +++ b/src/components/Forms/InputTextArea.js @@ -0,0 +1,67 @@ +import * as React from 'react'; +import { Form, Icon, Input, Tooltip } from 'antd'; + +const FormItem = Form.Item; +const { TextArea } = Input; + + +const content = ( + +
This content will be used in the
+
"Enter ID Number" page as part of
+
the Apply for a Card process of
+
the Unioil Mobile App.
+
+); + + +const InputTextArea = ({ + field: { ...field }, + form: { touched, setFieldValue, errors, ...form }, + required, + icon, + layout, + withActionBtn, + action, + onCountText, + charsperpage, + pagecount, + hasIcon, + ...props +}) => { + + return ( + + {`${props.label} `} + { + hasIcon && + + + + } + + } + style={{marginBottom: '10px'}} + validateStatus={touched[field.name] && errors[field.name] && 'error'} + help={touched[field.name] && errors[field.name]} + > + +

3D@G(5Rkx(Ex>HX!EBYlsBkn9 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 literal 0 HcmV?d00001 diff --git a/src/assets/img/ic_error.svg b/src/assets/img/ic_error.svg new file mode 100644 index 0000000..b6c6a66 --- /dev/null +++ b/src/assets/img/ic_error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/img/ic_success.svg b/src/assets/img/ic_success.svg new file mode 100644 index 0000000..e498c95 --- /dev/null +++ b/src/assets/img/ic_success.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/img/logo_unioil.png b/src/assets/img/logo_unioil.png new file mode 100644 index 0000000000000000000000000000000000000000..84159d21466ab72621a4804d1d351fd8bdfd9e98 GIT binary patch literal 8260 zcmV-KAiLj*P)Py9{z*hZRCodHT?v>}#kH=g+siCH%_cL<05TZ;G|#wVOmNFEGa5CC8Wp}IA2EqU zjT`!mOZ1_^nE2v~qGE7)=!*}1Dr!{X#xgDmPYsDL2`?H^P+)pyfC0LvXQrp`t$P2t zO;6vo@5KZZzA3-4@2%xj-KxLNId$q(!Prn3>Vcsi80rCQ4=Bb2{xoacp7t#Ev=7=7 zzUTdYS-hjA=HJ^}hMl=5e2?EZaKD71_)n(?QpYAnv$(j6aXyVH^`;!iPaFGM-?~qy zH9NP~A?j=w{-sCLv25!sD0M|PvO?$J%{IxfDS9*I2& z%zYW4i!!DR#nnrS8!PtI4<8b{pYq6JQNcI1Rvl{a$U?@&0n{9>RGxsB?Mctr_xG&p zQ*Po;tA0rA?zFBAM>y3|bBw{G_X2YJZ!giyr2LP{-t<{}GVthIhrkyOBReJ6x+%$% zxh58X_>rcL$J78b zV*KG;e%r+p+gQI>v(zLOWi?FkHl}-}?{0BJ;M>I`M!;L&n)s&1#V@g(-FJKS-JHqW z>$)?y@Rcm@)ugVb>M?p$`>Bwsd;QkT>?3^gd6oUF#tp4@cj3qo@KVPor=!zv!s8fI z)GC#Qj(4-%nz`E#cptQ~VY-UkfTn&|3BI*{MD=pUvP*Vh(|1Z$L!57?bgP>v0k6He z=IdPJ3pf{}3Zjhj))=HN&cs51{ze?O;{N`BYD4+u8fQ$49y?9D9R3cV4e=zG6bt>v${1M;C*yV#Xiw^6lM5ng#`&plku6U*6Kvf zA&g~S58VL2jAzW-2cKRP|9-g``gwm7dBE?2Q9&fnlnDi6L9 zbt6&WP8gm(=PWq*ZuW)Lu}V7_alzmlK5{HN?{3D~-sWOkDLF{X_Q1gjG=cSaX>6#j z0)tRYi{zQ6`T))}+pD&nopJ9Q=%HuWqD|Dj;kEcW6^sA=Pk+vTrmgwOR+zSe13f~ z<{$gzXJdRX2&AEz6UPER1*S0nTJ&8@U|A`@hdet7K3yM)K^~2QBLXVe%z8I&4aieW zhR9*HXf$X7OoS(|K*9x|=ap27E0*V&f$T)4BG<7qYM*9o-ZgAd*V7z8EyVm?FHxMtAa@3dSoZU;xXPrM@%tc3au)FXiog5fJ7) z?p4qhr+6x~*wdn*$%1JH0?*ch!V70Hi0Ek$Bg@$7b?2~?<|aLIm7*rqYk=Hdh$!C= z3_~vEx>CV#PpOuwBhZ#xF>rMxYB3J)VIaQU-~&7Wjc;tOIy|32s}JHLdLQaO ze7nB3h8g^l`eoUre(izn?_eVmA(dp3J&%H2Pdy|1@)tKO>;K4_w(39@18B>SqqTtb zdCY16CW3@*linZA#f^MKRv}%fSIg zfo6bykr+hsZMp`QR0g#iiFrH5d#On5=io(HK?68S ztq^&6`rgZOo}v=K(^4(fUuA+nrno4z#gx*j2LgY7G@JhJ#5QKrsoR??CgfOhF3O$9 zqmiGtH<{`~m?oC;NFBOv7_|z{4Ngmj1jke?m@!GVwp5}0$sc?sP+*U;%|d%&^Uc%; zq@5*uWZNDU!JyQl(E#=?3;VN5?R?MLqBOC1X}~=*Q6%qX5gBO8q3tgo;nzc7JA?WS zI@~B%^LkXma(RFwpQ%JMeH5`Z#uve zL2n+$wP9E6u=o{V1S*7NqMopju=|i*`p4aUwA!|=rpOclu zMQNqG>%d2K3Hcp%+MMCmrkKyVUX9=Kt2N4~)D{*Ift)WjV%U`c0|7k_QTzK$I(>58 z^6dZOV}T2I=xD7uRq^N|fM|b|EAj6EY(0jJkUR#xke>{IZ)YAb zv~qR!hL*}NxoasC!vVf9O6}~U+CG)d|0Jz3zJlH<&oHFx*NHVAf#DJq4^5rRGZBAKZXQbIa@ya3(&Ihg_f<=;9oib-REjavx z$!XXMmV@|u?t)(5jNiO_6jq>*K=PdEo2Qt-0a(&+oZ;E?|AeS>oY6b-PMoGw#OI;R zp|Axms9%yf2cs&zXdtghH7BkHc5d(hP#%op(uO6O1{&|~W5 zzSZf|Ca(2%#d6Zy{;t@f3!cF<{q0yFshBXChvaw%5uB z#ka6*)>kCi3dcCjbpL%~%1qh>W8Ey1^5ry?jXizQW|mjy;%SrlUjBdZSQ7rr7Gl_UCYQDdN!1Mj4Pzgn;7?hcGW#Mln@aKF{L7bvIP)sfb&KIi= zTnQH1sf`1=VrAQ0*z4Vh9g|@3@tX_RVNZ7@KJcq$X_6ksrQ1$->RlMnNO_%42%YJX z_t~>EY%5NxuVZ-P7y#m2h{{``=-oNSVGb#_Y29S#mDR~#Any+lXX{hUwUh+MTemg) zY%xFm5|@M*%*kAsr`bqla0GZ+DEUx6t6yKgqHl1)*KshbR-=>O8`F_~fUojb6=3#? zun~0!prZ12z9^|wsrT3uvrEi?q@u#MWMF`mAZqwx!ykN1jDspf`c+T}=2C+c#6-|5 zPmyySgGt4fcCYI0zHszH*r+#U6 zjy28tOu&mKlJ~)eH{BXvcvjuY$bYk8S>IdEwDu{LlZ7T80AOpKY3LfsrJ6ftN#(BVzmf2>=R=s9^o%&J@h03N8QK;0O3UD0uR6)#;b)hzF3>L`R(0YaVL2UGe?e zykVGJ!5v8L5yD;;HRvL7xWp#Ek z0h|%0@ks19-oRtMkkofaGwGjNY0_bHC6hO!u2az|Nujhe)k$Uc(51vGJH+>sfxX|M zRz>45(J(So`3I7U98$5W{}XUN!97^Lqb}k)O3}cC<5G+T(_|QICr}*K4!%yB4Uq|t z;Gn?CHQj7yDQ8SkxvElx-xEBIx5#d1DrZK2%;=k6yMlSH^j9C1sO1rHE2QU{C|fe8 z5Fy3iRZ^eXwzOx3mF^#)LnemTd<$v>x!BuR!e%*1y7g_)b?1(61w~5wB2H1`QS2Q zm+foG=l3{()l66}1)T6;ngkTx2uHJF1ZJQb4#IxzE5s{>&U1iI@y1}zPQ}$`HeyLn zfl%rHPL5SdVT{0F2(bt&@uRKr^bF(i|7j}ST(^|DzH#jEn(qJ<_u_jnsq6uGg7d7r zq+w~#d~1pcJfS@W@EtW6kL5Ht>%LJ@aRR^xdLBW^1~}2igSrk7>Sk*q_64QlpTjjq zkd$bP4CGF80&gQ+%KTI}K(=_tAd9n34{@)6;RV;jgdtNFd6ip&V!>reePRwh+d_gKy}>tp0A`lTgd?x}l|;eTkX%ZW zd&6v18W14$XMel>k+YWO3nU;CKf_w z*zIwoe=+sjTs}R0qQew}1fHr+{u}maF2^9l5!Ox^D%TdF=f7XKy!Uw|feRHv*Kx`H zB4tL{>-w)a`s;Z{o7sCmWQ~PlCH%T+B?yf&+A2TEY!G5 zwXkOO7Fi;?H`*0qRM}=0d(SS;tkkW~D$)p=0bgqta0A6k$NDTpqxIGInL7Y9X+E4L zLM&8h2n`v?`N(lp*Tkz4GrsrzclRcup}AoK537vNrUQ^6W*YSJ99t8nYL-aCO`cZ==Y^T2hqv4E$qIPkhH#=} zj7$YCwE|!h>zfnJdPLmo1|DqsFam3O=6Waa=s2WSoqQBSPUmo8C$oSE;K4k3Pf6p# z`nKMc#rA?e?scg-T8S8$Od4%vikX0POvJZYKL4ZImvXB&9$Qr(sUCI<#3NjK9l>L?R!?Nkc#BbDt zONG!AI9Rn5cAyk#IDdJb#3twl1{_t~WbZ)Dbjc#o6A<`E&I|y924{kAX`1#RzUcrP z7!=GzO5Uc+^bNIb%m!Klo`}b81Kv)ym7xj>9Pe%Xo`bErmoT!Z#{8ea6>6snjX#J8 z91pdCl`@!t7SifP*Z_Y}|7!2ssMwGp z#2)gg*ziz5;c6W^&GE55A7~!IbZlFBX64j@_8_6}hyd>zDxo~irf{PNwmhsAN?Zs4 zpj)PHtn0}9+6p{;2w&e)eNb9N9t0N1`PC8V{tvZ6&l?wwvjA^7R;cZfs;>d$b5RbA zz+;NRXpMSb;`+cvb#48fUB@T)1LEf({}DytQDx8%H<5Rwtzym_ZSQ_BTzp_pdK@0i zn;{iVT-%deZ(5*Kbi-eo`<-wk4G6@xquMmaXw?}Ih)abzD6XIuhYg0wy@Exj=@o4y zYN{156)5+_vu2}(iWF7agt zOZKcTb7zlh%f3@gCl~wuqlp=UN9P0I;}P!~X*6vB!uFwooPJJyTmRa295go=zaPLm z3E6F93RBN}AOM|kFks|@Jb8+F9ctAnYp@p{!Wn_;lMeG%k)-9<*3d${Bu|x)+y^d2 zXEdLSn*qv$fQJ-wp}|KB7|;xLtkVIYla7T~v&0Fy66dn?N9mDvZw%?uKgYb@vl%PM zzndB1RKX27qwbZ=g7FRqgZ3#^lW?#1lYq{#w%v|GK|0&;LS7DBG;V3GKnwBcbZu09 z&2*SpZ^ZZ2l^Roe0`PS#XckJg?I(?|_omiQsXjzRq6?7YI4AI^6h`u`QfWLjEr=u1 zleR4%z37fx3L=%{j1X*QF?HX8l#8At!ae)*Y8y^!WgYpvUpYK4IJ=7_qO;hUzp^jM zttB`cjz+_S!ZnFYxroy+$H$gZ?N4;g1;_c4V8sOt!67>Pv?!~Bj~uPP%LZIR6pw6j zW+5)p&h)3SDSs%O1g^$L|8K3F1s@?gkFTBrrw{VQYjl>!z~{lWo|i^`=J>Y04aIaa z!E{w6&I055CCZ_{+yOx9g9GWW`}NFK6R}&8`byOov1xP<;_bUC#iB~~M{@b)#aHvU zGJ|o5h0(tU*ns@lR#uC{JQL!$B!ipXGuzU(vK}vP@GV}RW>cHj04N7}$ccojHbzlVdSvld+Qkk9oxW9dC-WS_5; z)v4E(XWO86SVbD^XiY-&(dCb90_C-Zf_Ke>d_Z15?)8%OpBxMH%H(BGBrgZ>JUI(` zFO8e6?hr=imc}-g?P^J$Xb64_=pTqOo}G)xcV2y?|07!)Dg@hsn!c%aCF|{&Qr&`U3-3ie6P)!7wh5|}RL0|& z99V}~g1|*hN(KXn_SjcB_Sm@$cSS}>^~nQ#XsDr{WE#H?oe@qquzcGmepGbJCe8qd z33Sax9HKJ}fcSuYrN^Q%R6#4q@_`P&%!!4)6dUo!#IS@;&W>8GH3XM|FB)uqxmuvJWNZ%!PiG(i9_13YN7u+-q- z^^1;{Kq;V|jWAXMw$@dauE?N;V^F_`1fR!(164kKeiwwv&!B}l2F}%-e`Z8CoJd0r zHsb^E012fugQjk$sSi-+Lvbz>O#KswUn(4BJ&Hib)7rJfxrWf@V8~s-1Aew*v-Sp~ zCv&kCcpdO`HX_Mea6o7_xR*EZlH%rLj)2DZ(yu7>G^nXD4mLv)^vGNiw{0+>q%E8FYZw`3MHwK18BB&Xp9`$ZfoS5N4Pc!P@M+}77TAH?679S83Vs*d z<$vh5{UM847LFBCUPuSX*H2~@og)%IQkr&ODBz(yYJZ(8{W>7TzR)mRFaZF9jWamF zn?-iovYB@ohPdhk92;%zv6c0CDL;TzXwe0KX6c^u@F`e0sTKJ9=W{{qP2poVu@|}v z1L)J(!Due_4W5B$u>#E}rr8I9vwa8Y_&tyZFE8(fTP#XkZ6KGv7Nh&4zCat-E6;ga|KRkwvZ-!3kbwr_~+? zo^vW1atuT=+4i6;gN<`6us(5s%e5pAl3-3_R>1{~q-xMW>s>8}sB?&pLPnS~RJ(VX z?Xe2~#DX#c=$9zaHD()*%g+)Ov7{nhYgzV*QY!BLXsz6PfJN_zo9OZAH;;ZYLHnUJ zax-x4?Q3+k1{;}#SQbA6o$~4hRb(stjjC$C!4Co<7C2VJdxpw$LVVAStfKx%p zVCeTU5q+#|Zlz0>kF0U!k;W`6P%B;W)(8zEw9k0g8Wr?R{~GwaNB5m|fa4;^j;6#H za$Ez)V^jQq2U+rtFyzdJ<^8|=2wu*jvgUG#<;%d`-K$_{LrBmn_7}L^&#GJ2LoWCJ zs?pYMJ@BEvp7E%sA$yQCSGc`vw4HlKI$?CLy9kV@{6KSkE6Z$x9W*$2%);P8Lpj3r z0O@#4i$4r@b2PS+JtsP_^S)H-tg%bdZ$Zb4Yl)g`aoyS_s3Dl+kqRW)tGd!J9ltdD z7nJb_UbrUj(p;V$vP)aA2UiBql&it*4hO(oo;T;@85Ql^Y+r+rAz%ka(DTH&u}~G-_6w$iFdFtpAPfKkpSX$ zkws@b*fK*`GsgmW>zXUa_KVmJ5NT(b`m^shnTx%(0PSL2RI;$PE&XO$G3!g`vym_) zc6ahPfK6%Zj;^YURA@(HtuX@tY(d=Hk$nG*(QUa8KAgmol_QgPBL3T0)yBM<1DhWl zB-q { + if (column.sorter) { + column.sorter = (a, b) => a[column.dataIndex] - b[column.dataIndex]; + column.sortOrder = null; + } + return column; + }) + }; + } + + componentDidMount() { + this.handleInitialLoad() + } + + componentDidUpdate(prevProps, prevState, snapshot) { + const { currentPage, pageSize, pageName } = this.state; + + if (prevProps.location.search !== this.props.location.search) { + + if (this.props.location.search === "") { + this.handleclearAll(); + + } + } + + if (prevState.sortedInfo !== this.state.sortedInfo) { + //Sort Columns Function + this.setState({ + headerColumns: this.state.headerColumns.map(column => { + if ( + this.state.sortedInfo && + this.state.sortedInfo.columnKey === column.dataIndex + ) { + column.sortOrder = this.state.sortedInfo.order; + } + return column; + }) + }); + } + } + + + handleInitialLoad = () => { + const { search } = this.props.location; + const { currentPage, pageSize, pageName, sizeName } = this.state; + + if (search) { + let parsed = querystring.parse(search.substring(1)); + console.log('===================================='); + console.log(parsed,pageName, sizeName,parsed[pageName], parsed[sizeName], "&&&&&&SEARCH!!"); + console.log('===================================='); + + if (parsed) { + if (parsed[pageName] && parsed[sizeName] && parsed.q && parsed._sort && parsed._order ) { + this.handleUpdateData({ + page: parseInt(parsed[pageName]), + size: parseInt(parsed[sizeName]), + search: parsed.q + }); + } else if (parsed[pageName] && parsed[sizeName] && parsed.q) { + alert("Search") + this.handleUpdateData({ + page: parseInt(parsed[pageName]), + size: parseInt(parsed[sizeName]), + search: parsed.q + }); + } else if (parsed[pageName] && parsed[sizeName]) { + this.handleUpdateData({ + page: parseInt(parsed[pageName]), + size: parseInt(parsed[sizeName]), + }); + } + // this.fetch({ + // ...parsed + // }); + } + } else { + this.handleUpdateData({ + page: currentPage, + size: pageSize, + }); + + } + } + + handleTableChange = (pagination, filters, sorter) => { + const { currentPage, pageSize, searchValue } = this.state; + console.log("===================================="); + console.log(filters, sorter, "tesadasdas"); + console.log("===================================="); + // this.setState({ + // filteredInfo: filters, + // sortedInfo: sorter + // }); + if (Object.keys(sorter).length !== 0) { + // this.fetch({ + // _page: currentPage, + // _limit: pageSize, + // _sort: sorter.field, + // _order: sorter.order === "ascend" ? "asc" : "desc", + + // ...filters + // }); + + if (searchValue) { + this.handleUpdateData({ + sort: sorter, + filter: filters, + search: searchValue + }); + } else { + this.handleUpdateData({ sort: sorter, filter: filters }); + } + } else { + if (searchValue) { + this.handleUpdateData({ filter: filters, search: searchValue }); + } else { + this.handleUpdateData({ filter: filters }); + } + // this.fetch({ + // _page: currentPage, + // _limit: pageSize, + // ...filters + // }); + } + }; + + fetch = async (params = {}) => { + let { url, history } = this.props; + const stringified = querystring.stringify(params); + + console.log("GGGGG3333", url.default, stringified, params, window.location); + this.setState({ loading: true }); + // history.push(`${url.default}?${stringified}`); + history.push({ + pathname: url.default, + search: stringified + }); + try { + // let response = await callApi({ + // url: url.default, + // params: { + // _page: params._page, + // _limit: params._limit, + // ...params + // } + // }); + + // if (response.status === 200) { + // this.setState({ + // loading: false, + // data: response.data, + // totalData: response.data.total ? response.data.total : 100 + // }); + // } + } catch (error) {} + }; + + handleUpdateData = ({ search, sort, page, size, filter }) => { + const { + currentPage, + pageSize, + filteredInfo, + sortedInfo, + searchValue + } = this.state; + + console.log("===================================="); + console.log( + search, sort, page, size, filter, + "WWOOOPS!!" + ); + console.log("===================================="); + + if (search && sort && filter) { + + this.setState({ + filteredInfo: filter, + sortedInfo: sort, + searchValue: search, + }) + + this.fetch({ + _page: currentPage, + _limit: pageSize, + q: search, + _sort: sort.field, + _order: sort.order === "ascend" ? "asc" : "desc", + ...filter + }); + + //filteredInfo value + } else if (filter) { + if (sort) { + + this.setState({ + filteredInfo: filter, + sortedInfo: sort, + }) + + this.fetch({ + _page: currentPage, + _limit: pageSize, + _sort: sort.field, + _order: sort.order === "ascend" ? "asc" : "desc", + ...filter + }); + } else if (search) { + + this.setState({ + filteredInfo: filter, + searchValue: search, + }) + + this.fetch({ + _page: currentPage, + _limit: pageSize, + q: search, + ...filter + }); + } else { + + this.setState({ + filteredInfo: filter, + }) + + this.fetch({ + _page: currentPage, + _limit: pageSize, + ...filter + }); + } + //sortedInfo value + } else if (sort) { + if (filter) { + this.setState({ + filteredInfo: filter, + sortedInfo: sort, + }) + + this.fetch({ + _page: currentPage, + _limit: pageSize, + _sort: sort.field, + _order: sort.order === "ascend" ? "asc" : "desc", + ...filter + }); + } else if (search) { + + this.setState({ + sortedInfo: sort, + searchValue: search, + }) + + this.fetch({ + _page: currentPage, + _limit: pageSize, + q: search, + _sort: sort.field, + _order: sort.order === "ascend" ? "asc" : "desc" + }); + } else { + this.setState({ + sortedInfo: sort, + }) + + this.fetch({ + _page: currentPage, + _limit: pageSize, + _sort: sort.field, + _order: sort.order === "ascend" ? "asc" : "desc" + }); + } + + //search Value + } else if (search) { + if (filter) { + + this.setState({ + filteredInfo: filter, + searchValue: search, + }) + + this.fetch({ + _page: currentPage, + _limit: pageSize, + q: search, + ...filter + }); + } else if (sort) { + + this.setState({ + sortedInfo: sort, + searchValue: search, + }) + + this.fetch({ + _page: currentPage, + _limit: pageSize, + q: search, + _sort: sort.field, + _order: sort.order === "ascend" ? "asc" : "desc" + }); + } else if (page && size) { + alert(page, size, "OOOPS@") + this.setState({ + currentPage: page, + pageSize: size, + searchValue: search, + }) + this.fetch({ + _page: page, + _limit: size, + q: search + }); + } else if (page) { + + this.setState({ + currentPage: page, + searchValue: search, + }) + + this.fetch({ + _page: page, + _limit: pageSize, + q: search + }); + } else if (size) { + + this.setState({ + pageSize: size, + searchValue: search, + }) + + this.fetch({ + _page: currentPage, + _limit: size, + q: search + }); + } else { + + this.setState({ + searchValue: search, + }) + + this.fetch({ + _page: currentPage, + _limit: pageSize, + q: search + }); + } + } else { + if (page && size) { + this.setState({ + currentPage: page, + pageSize: size, + }) + + + this.fetch({ + _page: page, + _limit: size + }); + } else if (page) { + + this.setState({ + currentPage: page, + }) + + this.fetch({ + _page: page, + _limit: pageSize + }); + } else if (size) { + + this.setState({ + pageSize: size, + }) + + this.fetch({ + _page: currentPage, + _limit: size + }); + } else { + this.fetch({ + _page: currentPage, + _limit: pageSize + }); + } + } + }; + + handleSearch = e => { + const { currentPage, pageSize, filteredInfo, sortedInfo } = this.state; + console.log("===================================="); + console.log(e); + console.log("===================================="); + // this.setState({ + // searchValue: e + // }); + if (e) { + this.handleUpdateData({ search: e, page: 1 }); + } else { + this.handleUpdateData({ search: null, page: 1 }); + } + }; + + handleSearchChange = e => { + const { currentPage, pageSize, filteredInfo, sortedInfo } = this.state; + + // this.setState({ + // searchValue: e + // }); + if (e) { + this.setState({ + searchValue: e.target.value + }) + } else { + this.setState({ + searchValue: null + }) + } + }; + + handleDeleteConfirmYes = e => { + console.log(e); + message.success("Click on Yes"); + }; + + handleDeleteConfirmNo = e => { + console.log(e); + message.error("Click on No"); + }; + handleclearAll = () => { + console.log("===================================="); + console.log("reset"); + console.log("===================================="); + this.setState({ + filteredInfo: null, + sortedInfo: null, + searchValue: null, + // currentPage: 1, + // pageSize: 10 + }); + + this.handleUpdateData({ + page: 1, + size: 10, + }); + // this.fetch({ + // _page: 1, + // _limit: 10 + // }); + }; + handlePagination = page => { + const { pageSize, searchValue } = this.state; + + // this.fetch({ + // _page: page, + // _limit: pageSize + // }); + + if (searchValue) { + this.handleUpdateData({ page, search: searchValue }); + } else { + this.handleUpdateData({ page }); + } + + // this.setState({ + // currentPage: page + // }); + }; + + handleSizeChange = (current, pageSize) => { + console.log("TEST!", current, pageSize, searchValue); + const { searchValue } = this.state; + // this.fetch({ + // _page: current, + // _limit: pageSize + // }); + + if (searchValue) { + this.handleUpdateData({ + page: current, + size: pageSize, + search: searchValue + }); + } else { + this.handleUpdateData({ page: current, size: pageSize }); + } + + // this.setState({ + // currentPage: current, + // pageSize + // }); + }; + + + handleRenderActionButton = ({action, item}) => { + let {keyValue} = this.props + + let idValue = item[keyValue].toString() + console.log('===================================='); + + console.log('===================================='); + switch (action.type) { + case 'edit': + return + + + + + + break; + case 'view': + return + + + + + + break; + + case 'delete': + return + this.handleDeleteConfirmYes(item)} + onCancel={() => this.handleDeleteConfirmNo(item)} + okText="Yes" + cancelText="No" > + + + + + + break; + + default: + return null + break; + } + + } + + render() { + + let { columns, keyValue, actions } = this.props; + let { + sortedInfo, + filteredInfo, + headerColumns, + currentPage, + pageSize, + totalData, + data, + searchValue + } = this.state; + + // let headerColumns = columns.map(column => { + // if (column.sorter) { + // column.sorter = (a, b) => a[column.dataIndex] - b[column.dataIndex]; + // column.sortOrder = + // sortedInfo && + // sortedInfo.columnKey === column.dataIndex && + // sortedInfo.order; + // } + // return column; + // }); + + console.log("===================================="); + console.log(currentPage, pageSize, "TESTASDASD"); + console.log("===================================="); + + return ( +