stripe payment
parent
91dce8da3d
commit
c46ee6e5ea
|
@ -16,7 +16,7 @@
|
||||||
"@testing-library/react": "^13.4.0",
|
"@testing-library/react": "^13.4.0",
|
||||||
"@testing-library/user-event": "^13.5.0",
|
"@testing-library/user-event": "^13.5.0",
|
||||||
"@yudiel/react-qr-scanner": "^1.1.10",
|
"@yudiel/react-qr-scanner": "^1.1.10",
|
||||||
"antd": "^5.10.3",
|
"antd": "^5.14.1",
|
||||||
"buffer": "^6.0.3",
|
"buffer": "^6.0.3",
|
||||||
"i18next": "^23.2.3",
|
"i18next": "^23.2.3",
|
||||||
"i18next-browser-languagedetector": "^7.1.0",
|
"i18next-browser-languagedetector": "^7.1.0",
|
||||||
|
@ -55,23 +55,23 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ant-design/colors": {
|
"node_modules/@ant-design/colors": {
|
||||||
"version": "7.0.0",
|
"version": "7.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.2.tgz",
|
||||||
"integrity": "sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==",
|
"integrity": "sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ctrl/tinycolor": "^3.4.0"
|
"@ctrl/tinycolor": "^3.6.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ant-design/cssinjs": {
|
"node_modules/@ant-design/cssinjs": {
|
||||||
"version": "1.17.2",
|
"version": "1.18.4",
|
||||||
"resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.17.2.tgz",
|
"resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.18.4.tgz",
|
||||||
"integrity": "sha512-vu7lnfEx4Mf8MPzZxn506Zen3Nt4fRr2uutwvdCuTCN5IiU0lDdQ0tiJ24/rmB8+pefwjluYsbyzbQSbgfJy+A==",
|
"integrity": "sha512-IrUAOj5TYuMG556C9gdbFuOrigyhzhU5ZYpWb3gYTxAwymVqRbvLzFCZg6OsjLBR6GhzcxYF3AhxKmjB+rA2xA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.11.1",
|
"@babel/runtime": "^7.11.1",
|
||||||
"@emotion/hash": "^0.8.0",
|
"@emotion/hash": "^0.8.0",
|
||||||
"@emotion/unitless": "^0.7.5",
|
"@emotion/unitless": "^0.7.5",
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
"csstype": "^3.0.10",
|
"csstype": "^3.1.3",
|
||||||
"rc-util": "^5.35.0",
|
"rc-util": "^5.35.0",
|
||||||
"stylis": "^4.0.13"
|
"stylis": "^4.0.13"
|
||||||
},
|
},
|
||||||
|
@ -81,12 +81,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ant-design/icons": {
|
"node_modules/@ant-design/icons": {
|
||||||
"version": "5.2.6",
|
"version": "5.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.0.tgz",
|
||||||
"integrity": "sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==",
|
"integrity": "sha512-69FgBsIkeCjw72ZU3fJpqjhmLCPrzKGEllbrAZK7MUdt1BrKsyG6A8YDCBPKea27UQ0tRXi33PcjR4tp/tEXMg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ant-design/colors": "^7.0.0",
|
"@ant-design/colors": "^7.0.0",
|
||||||
"@ant-design/icons-svg": "^4.3.0",
|
"@ant-design/icons-svg": "^4.4.0",
|
||||||
"@babel/runtime": "^7.11.2",
|
"@babel/runtime": "^7.11.2",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"rc-util": "^5.31.1"
|
"rc-util": "^5.31.1"
|
||||||
|
@ -100,9 +100,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ant-design/icons-svg": {
|
"node_modules/@ant-design/icons-svg": {
|
||||||
"version": "4.3.1",
|
"version": "4.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz",
|
||||||
"integrity": "sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g=="
|
"integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA=="
|
||||||
},
|
},
|
||||||
"node_modules/@ant-design/react-slick": {
|
"node_modules/@ant-design/react-slick": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
|
@ -1873,9 +1873,9 @@
|
||||||
"integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
|
"integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
|
||||||
},
|
},
|
||||||
"node_modules/@babel/runtime": {
|
"node_modules/@babel/runtime": {
|
||||||
"version": "7.23.2",
|
"version": "7.23.9",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz",
|
||||||
"integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==",
|
"integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"regenerator-runtime": "^0.14.0"
|
"regenerator-runtime": "^0.14.0"
|
||||||
},
|
},
|
||||||
|
@ -4724,14 +4724,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rc-component/color-picker": {
|
"node_modules/@rc-component/color-picker": {
|
||||||
"version": "1.4.1",
|
"version": "1.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.5.1.tgz",
|
||||||
"integrity": "sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==",
|
"integrity": "sha512-onyAFhWKXuG4P162xE+7IgaJkPkwM94XlOYnQuu69XdXWMfxpeFi6tpJBsieIMV7EnyLV5J3lDzdLiFeK0iEBA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.23.6",
|
||||||
"@ctrl/tinycolor": "^3.6.0",
|
"@ctrl/tinycolor": "^3.6.1",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"rc-util": "^5.30.0"
|
"rc-util": "^5.38.1"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"react": ">=16.9.0",
|
"react": ">=16.9.0",
|
||||||
|
@ -4797,9 +4797,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rc-component/tour": {
|
"node_modules/@rc-component/tour": {
|
||||||
"version": "1.10.0",
|
"version": "1.12.3",
|
||||||
"resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.12.3.tgz",
|
||||||
"integrity": "sha512-voV0BKaTJbewB9LLgAHQ7tAGG7rgDkKQkZo82xw2gIk542hY+o7zwoqdN16oHhIKk7eG/xi+mdXrONT62Dt57A==",
|
"integrity": "sha512-U4mf1FiUxGCwrX4ed8op77Y8VKur+8Y/61ylxtqGbcSoh1EBC7bWd/DkLu0ClTUrKZInqEi1FL7YgFtnT90vHA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.18.0",
|
"@babel/runtime": "^7.18.0",
|
||||||
"@rc-component/portal": "^1.0.0-9",
|
"@rc-component/portal": "^1.0.0-9",
|
||||||
|
@ -4816,9 +4816,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rc-component/trigger": {
|
"node_modules/@rc-component/trigger": {
|
||||||
"version": "1.18.0",
|
"version": "1.18.3",
|
||||||
"resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-1.18.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-1.18.3.tgz",
|
||||||
"integrity": "sha512-vloGnWpeTmt7DBw0OHnG9poQ8h1WFh0hebq6fpgVjGYSxm6JU8rLH+kNwVNNvhL6Rg5He4ESjOk6O7uF9dJhxA==",
|
"integrity": "sha512-Ksr25pXreYe1gX6ayZ1jLrOrl9OAUHUqnuhEx6MeHnNa1zVM5Y2Aj3Q35UrER0ns8D2cJYtmJtVli+i+4eKrvA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.23.2",
|
"@babel/runtime": "^7.23.2",
|
||||||
"@rc-component/portal": "^1.1.0",
|
"@rc-component/portal": "^1.1.0",
|
||||||
|
@ -6751,57 +6751,56 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/antd": {
|
"node_modules/antd": {
|
||||||
"version": "5.10.3",
|
"version": "5.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/antd/-/antd-5.10.3.tgz",
|
"resolved": "https://registry.npmjs.org/antd/-/antd-5.14.1.tgz",
|
||||||
"integrity": "sha512-IV+F4P9Fm0pXj4WFCLVLKIu7eCtVKZMLvU1a0HUIRBEy5YPsD5bDzjYkZ4F+RVPaFrAjAvChrWcX6NtQOVNuJw==",
|
"integrity": "sha512-P0Bwt9NKSZqnEJ0QAyAb13ay34FjOKsz+KEp/ts+feYsynhUxF7/Ay6d1jS6ZcNpcs+JWTlLKO59YFZ3tX07wQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ant-design/colors": "^7.0.0",
|
"@ant-design/colors": "^7.0.2",
|
||||||
"@ant-design/cssinjs": "^1.17.2",
|
"@ant-design/cssinjs": "^1.18.4",
|
||||||
"@ant-design/icons": "^5.2.6",
|
"@ant-design/icons": "^5.3.0",
|
||||||
"@ant-design/react-slick": "~1.0.2",
|
"@ant-design/react-slick": "~1.0.2",
|
||||||
"@babel/runtime": "^7.18.3",
|
|
||||||
"@ctrl/tinycolor": "^3.6.1",
|
"@ctrl/tinycolor": "^3.6.1",
|
||||||
"@rc-component/color-picker": "~1.4.1",
|
"@rc-component/color-picker": "~1.5.1",
|
||||||
"@rc-component/mutate-observer": "^1.1.0",
|
"@rc-component/mutate-observer": "^1.1.0",
|
||||||
"@rc-component/tour": "~1.10.0",
|
"@rc-component/tour": "~1.12.3",
|
||||||
"@rc-component/trigger": "^1.18.0",
|
"@rc-component/trigger": "^1.18.3",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.5.1",
|
||||||
"copy-to-clipboard": "^3.2.0",
|
"copy-to-clipboard": "^3.3.3",
|
||||||
"dayjs": "^1.11.1",
|
"dayjs": "^1.11.10",
|
||||||
"qrcode.react": "^3.1.0",
|
"qrcode.react": "^3.1.0",
|
||||||
"rc-cascader": "~3.18.1",
|
"rc-cascader": "~3.21.2",
|
||||||
"rc-checkbox": "~3.1.0",
|
"rc-checkbox": "~3.1.0",
|
||||||
"rc-collapse": "~3.7.1",
|
"rc-collapse": "~3.7.2",
|
||||||
"rc-dialog": "~9.3.4",
|
"rc-dialog": "~9.3.4",
|
||||||
"rc-drawer": "~6.5.2",
|
"rc-drawer": "~7.0.0",
|
||||||
"rc-dropdown": "~4.1.0",
|
"rc-dropdown": "~4.1.0",
|
||||||
"rc-field-form": "~1.39.0",
|
"rc-field-form": "~1.41.0",
|
||||||
"rc-image": "~7.3.1",
|
"rc-image": "~7.5.1",
|
||||||
"rc-input": "~1.2.1",
|
"rc-input": "~1.4.3",
|
||||||
"rc-input-number": "~8.1.0",
|
"rc-input-number": "~9.0.0",
|
||||||
"rc-mentions": "~2.8.0",
|
"rc-mentions": "~2.10.1",
|
||||||
"rc-menu": "~9.12.2",
|
"rc-menu": "~9.12.4",
|
||||||
"rc-motion": "^2.9.0",
|
"rc-motion": "^2.9.0",
|
||||||
"rc-notification": "~5.3.0",
|
"rc-notification": "~5.3.0",
|
||||||
"rc-pagination": "~3.6.1",
|
"rc-pagination": "~4.0.4",
|
||||||
"rc-picker": "~3.14.6",
|
"rc-picker": "~4.1.1",
|
||||||
"rc-progress": "~3.5.1",
|
"rc-progress": "~3.5.1",
|
||||||
"rc-rate": "~2.12.0",
|
"rc-rate": "~2.12.0",
|
||||||
"rc-resize-observer": "^1.4.0",
|
"rc-resize-observer": "^1.4.0",
|
||||||
"rc-segmented": "~2.2.2",
|
"rc-segmented": "~2.3.0",
|
||||||
"rc-select": "~14.9.2",
|
"rc-select": "~14.11.0",
|
||||||
"rc-slider": "~10.3.1",
|
"rc-slider": "~10.5.0",
|
||||||
"rc-steps": "~6.0.1",
|
"rc-steps": "~6.0.1",
|
||||||
"rc-switch": "~4.1.0",
|
"rc-switch": "~4.1.0",
|
||||||
"rc-table": "~7.34.4",
|
"rc-table": "~7.39.0",
|
||||||
"rc-tabs": "~12.12.1",
|
"rc-tabs": "~14.0.0",
|
||||||
"rc-textarea": "~1.4.0",
|
"rc-textarea": "~1.6.3",
|
||||||
"rc-tooltip": "~6.1.2",
|
"rc-tooltip": "~6.1.3",
|
||||||
"rc-tree": "~5.7.12",
|
"rc-tree": "~5.8.5",
|
||||||
"rc-tree-select": "~5.13.0",
|
"rc-tree-select": "~5.17.0",
|
||||||
"rc-upload": "~4.3.5",
|
"rc-upload": "~4.5.2",
|
||||||
"rc-util": "^5.38.0",
|
"rc-util": "^5.38.1",
|
||||||
"scroll-into-view-if-needed": "^3.0.3",
|
"scroll-into-view-if-needed": "^3.1.0",
|
||||||
"throttle-debounce": "^5.0.0"
|
"throttle-debounce": "^5.0.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
|
@ -7823,9 +7822,9 @@
|
||||||
"integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA=="
|
"integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA=="
|
||||||
},
|
},
|
||||||
"node_modules/classnames": {
|
"node_modules/classnames": {
|
||||||
"version": "2.3.2",
|
"version": "2.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
|
||||||
"integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
|
"integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
|
||||||
},
|
},
|
||||||
"node_modules/clean-css": {
|
"node_modules/clean-css": {
|
||||||
"version": "5.3.2",
|
"version": "5.3.2",
|
||||||
|
@ -8034,9 +8033,9 @@
|
||||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||||
},
|
},
|
||||||
"node_modules/compute-scroll-into-view": {
|
"node_modules/compute-scroll-into-view": {
|
||||||
"version": "3.0.3",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz",
|
||||||
"integrity": "sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A=="
|
"integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg=="
|
||||||
},
|
},
|
||||||
"node_modules/concat-map": {
|
"node_modules/concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
|
@ -8577,9 +8576,9 @@
|
||||||
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
|
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
|
||||||
},
|
},
|
||||||
"node_modules/csstype": {
|
"node_modules/csstype": {
|
||||||
"version": "3.1.2",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
||||||
"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
|
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
|
||||||
},
|
},
|
||||||
"node_modules/d": {
|
"node_modules/d": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
|
@ -17932,16 +17931,16 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-cascader": {
|
"node_modules/rc-cascader": {
|
||||||
"version": "3.18.1",
|
"version": "3.21.2",
|
||||||
"resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.18.1.tgz",
|
"resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.21.2.tgz",
|
||||||
"integrity": "sha512-M7Xr5Fs/E87ZGustfObtBYQjsvBCET0UX2JYXB2GmOP+2fsZgjaRGXK+CJBmmWXQ6o4OFinpBQBXG4wJOQ5MEg==",
|
"integrity": "sha512-J7GozpgsLaOtzfIHFJFuh4oFY0ePb1w10twqK6is3pAkqHkca/PsokbDr822KIRZ8/CK8CqevxohuPDVZ1RO/A==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.12.5",
|
"@babel/runtime": "^7.12.5",
|
||||||
"array-tree-filter": "^2.1.0",
|
"array-tree-filter": "^2.1.0",
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
"rc-select": "~14.9.0",
|
"rc-select": "~14.11.0",
|
||||||
"rc-tree": "~5.7.0",
|
"rc-tree": "~5.8.1",
|
||||||
"rc-util": "^5.35.0"
|
"rc-util": "^5.37.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"react": ">=16.9.0",
|
"react": ">=16.9.0",
|
||||||
|
@ -17963,9 +17962,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-collapse": {
|
"node_modules/rc-collapse": {
|
||||||
"version": "3.7.1",
|
"version": "3.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.2.tgz",
|
||||||
"integrity": "sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg==",
|
"integrity": "sha512-ZRw6ipDyOnfLFySxAiCMdbHtb5ePAsB9mT17PA6y1mRD/W6KHRaZeb5qK/X9xDV1CqgyxMpzw0VdS74PCcUk4A==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
|
@ -17994,9 +17993,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-drawer": {
|
"node_modules/rc-drawer": {
|
||||||
"version": "6.5.2",
|
"version": "7.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-6.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.0.0.tgz",
|
||||||
"integrity": "sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ==",
|
"integrity": "sha512-ePcS4KtQnn57bCbVXazHN2iC8nTPCXlWEIA/Pft87Pd9U7ZeDkdRzG47jWG2/TAFXFlFltRAMcslqmUM8NPCGA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"@rc-component/portal": "^1.1.1",
|
"@rc-component/portal": "^1.1.1",
|
||||||
|
@ -18025,9 +18024,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-field-form": {
|
"node_modules/rc-field-form": {
|
||||||
"version": "1.39.0",
|
"version": "1.41.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.39.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.41.0.tgz",
|
||||||
"integrity": "sha512-V7Wk7uji1jBsUGGgP788H9rpFy55HLiD4lywTlktUGjK7EgW5dt+mq1MPbtCpPRMzs83vZBW4SOChOmCACz4WA==",
|
"integrity": "sha512-k9AS0wmxfJfusWDP/YXWTpteDNaQ4isJx9UKxx4/e8Dub4spFeZ54/EuN2sYrMRID/+hUznPgVZeg+Gf7XSYCw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.18.0",
|
"@babel/runtime": "^7.18.0",
|
||||||
"async-validator": "^4.1.0",
|
"async-validator": "^4.1.0",
|
||||||
|
@ -18042,14 +18041,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-image": {
|
"node_modules/rc-image": {
|
||||||
"version": "7.3.1",
|
"version": "7.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.5.1.tgz",
|
||||||
"integrity": "sha512-Tu3vcUyMHa6zxTiQRzHt1glbGwuNWzeQBG9O6qIdy/+1ue0Qb70it+jUct1YPVNkJa/QfaTfUhmsNsqrw7mgsg==",
|
"integrity": "sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.11.2",
|
"@babel/runtime": "^7.11.2",
|
||||||
"@rc-component/portal": "^1.0.2",
|
"@rc-component/portal": "^1.0.2",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"rc-dialog": "~9.3.0",
|
"rc-dialog": "~9.3.4",
|
||||||
"rc-motion": "^2.6.2",
|
"rc-motion": "^2.6.2",
|
||||||
"rc-util": "^5.34.1"
|
"rc-util": "^5.34.1"
|
||||||
},
|
},
|
||||||
|
@ -18059,9 +18058,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-input": {
|
"node_modules/rc-input": {
|
||||||
"version": "1.2.1",
|
"version": "1.4.3",
|
||||||
"resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.4.3.tgz",
|
||||||
"integrity": "sha512-nQRmBvEFoGi+SNRDavccZ8ueyhFgmxkWqIt4aDyuNJgUZF12HJKIwDhAafUM7N+g7PyuW9FH3pf3zPHzdiCWbA==",
|
"integrity": "sha512-aHyQUAIRmTlOnvk5EcNqEpJ+XMtfMpYRAJayIlJfsvvH9cAKUWboh4egm23vgMA7E+c/qm4BZcnrDcA960GC1w==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.11.1",
|
"@babel/runtime": "^7.11.1",
|
||||||
"classnames": "^2.2.1",
|
"classnames": "^2.2.1",
|
||||||
|
@ -18073,14 +18072,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-input-number": {
|
"node_modules/rc-input-number": {
|
||||||
"version": "8.1.0",
|
"version": "9.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-8.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.0.0.tgz",
|
||||||
"integrity": "sha512-bdHgduOxuN0lrhzgPmoKbhRD4GLIzVcddVz972/JHPHr7oLwPX5xDb9w4bXhuMzyT2VzQy7nggRCfH3yAl09oA==",
|
"integrity": "sha512-RfcDBDdWFFetouWFXBA+WPEC8LzBXyngr9b+yTLVIygfFu7HiLRGn/s/v9wwno94X7KFvnb28FNynMGj9XJlDQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"@rc-component/mini-decimal": "^1.0.1",
|
"@rc-component/mini-decimal": "^1.0.1",
|
||||||
"classnames": "^2.2.5",
|
"classnames": "^2.2.5",
|
||||||
"rc-input": "~1.2.1",
|
"rc-input": "~1.4.0",
|
||||||
"rc-util": "^5.28.0"
|
"rc-util": "^5.28.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
@ -18089,16 +18088,16 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-mentions": {
|
"node_modules/rc-mentions": {
|
||||||
"version": "2.8.0",
|
"version": "2.10.1",
|
||||||
"resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.10.1.tgz",
|
||||||
"integrity": "sha512-LBMkO6bSGhEvS1CvMK978qGN82tI+mzk7l/uTiQJH+UDiwpvq+pxK4DxU5b6Q1T5LW6bn2pSua9RaZKZrDoBOw==",
|
"integrity": "sha512-72qsEcr/7su+a07ndJ1j8rI9n0Ka/ngWOLYnWMMv0p2mi/5zPwPrEDTt6Uqpe8FWjWhueDJx/vzunL6IdKDYMg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.22.5",
|
"@babel/runtime": "^7.22.5",
|
||||||
"@rc-component/trigger": "^1.5.0",
|
"@rc-component/trigger": "^1.5.0",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"rc-input": "~1.2.1",
|
"rc-input": "~1.4.0",
|
||||||
"rc-menu": "~9.12.0",
|
"rc-menu": "~9.12.0",
|
||||||
"rc-textarea": "~1.4.0",
|
"rc-textarea": "~1.6.1",
|
||||||
"rc-util": "^5.34.1"
|
"rc-util": "^5.34.1"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
@ -18107,9 +18106,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-menu": {
|
"node_modules/rc-menu": {
|
||||||
"version": "9.12.2",
|
"version": "9.12.4",
|
||||||
"resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.12.2.tgz",
|
"resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.12.4.tgz",
|
||||||
"integrity": "sha512-NzloFH2pRUYmQ3S/YbJAvRkgCZaLvq0sRa5rgJtuIHLfPPprNHNyepeSlT64+dbVqI4qRWL44VN0lUCldCbbfg==",
|
"integrity": "sha512-t2NcvPLV1mFJzw4F21ojOoRVofK2rWhpKPx69q2raUsiHPDP6DDevsBILEYdsIegqBeSXoWs2bf6CueBKg3BFg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"@rc-component/trigger": "^1.17.0",
|
"@rc-component/trigger": "^1.17.0",
|
||||||
|
@ -18171,13 +18170,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-pagination": {
|
"node_modules/rc-pagination": {
|
||||||
"version": "3.6.1",
|
"version": "4.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-4.0.4.tgz",
|
||||||
"integrity": "sha512-R/sUnKKXx1Nm4kZfUKS3YKa7yEPF1ZkVB/AynQaHt+nMER7h9wPTfliDJFdYo+RM/nk2JD4Yc5QpUq8fIQHeug==",
|
"integrity": "sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.2.1",
|
"classnames": "^2.3.2",
|
||||||
"rc-util": "^5.32.2"
|
"rc-util": "^5.38.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"react": ">=16.9.0",
|
"react": ">=16.9.0",
|
||||||
|
@ -18185,14 +18184,16 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-picker": {
|
"node_modules/rc-picker": {
|
||||||
"version": "3.14.6",
|
"version": "4.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-3.14.6.tgz",
|
"resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.1.1.tgz",
|
||||||
"integrity": "sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag==",
|
"integrity": "sha512-H99qaHUepHjHnAqMLiftJEATXRuHJZcUyFoRkyIqUvTHVGnx/uHxFFNm7QIu1valCpfwdsGWQxiWgn9CAxvlvA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"@rc-component/trigger": "^1.5.0",
|
"@rc-component/trigger": "^1.5.0",
|
||||||
"classnames": "^2.2.1",
|
"classnames": "^2.2.1",
|
||||||
"rc-util": "^5.30.0"
|
"rc-overflow": "^1.3.2",
|
||||||
|
"rc-resize-observer": "^1.4.0",
|
||||||
|
"rc-util": "^5.38.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8.x"
|
"node": ">=8.x"
|
||||||
|
@ -18267,9 +18268,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-segmented": {
|
"node_modules/rc-segmented": {
|
||||||
"version": "2.2.2",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.3.0.tgz",
|
||||||
"integrity": "sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==",
|
"integrity": "sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.11.1",
|
"@babel/runtime": "^7.11.1",
|
||||||
"classnames": "^2.2.1",
|
"classnames": "^2.2.1",
|
||||||
|
@ -18282,9 +18283,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-select": {
|
"node_modules/rc-select": {
|
||||||
"version": "14.9.2",
|
"version": "14.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.9.2.tgz",
|
"resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.11.0.tgz",
|
||||||
"integrity": "sha512-VQ15sRFgPURHb8ZcZNSDtb2rAw3+C9xlL0nDziwNHTEW1KvEpZ8y+0v5w24X/Bpl9b3cW1BOyW1F5UqSAq+7Dg==",
|
"integrity": "sha512-8J8G/7duaGjFiTXCBLWfh5P+KDWyA3KTlZDfV3xj/asMPqB2cmxfM+lH50wRiPIRsCQ6EbkCFBccPuaje3DHIg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"@rc-component/trigger": "^1.5.0",
|
"@rc-component/trigger": "^1.5.0",
|
||||||
|
@ -18303,9 +18304,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-slider": {
|
"node_modules/rc-slider": {
|
||||||
"version": "10.3.1",
|
"version": "10.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.5.0.tgz",
|
||||||
"integrity": "sha512-XszsZLkbjcG9ogQy/zUC0n2kndoKUAnY/Vnk1Go5Gx+JJQBz0Tl15d5IfSiglwBUZPS9vsUJZkfCmkIZSqWbcA==",
|
"integrity": "sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.2.5",
|
"classnames": "^2.2.5",
|
||||||
|
@ -18351,15 +18352,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-table": {
|
"node_modules/rc-table": {
|
||||||
"version": "7.34.4",
|
"version": "7.39.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.34.4.tgz",
|
"resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.39.0.tgz",
|
||||||
"integrity": "sha512-os+i88Y2AO/6dNkOgJkKSHgXYaZZGnuOEEe+nyaq5IRgvAQNhLysUjXt2objtBeFDEZR8TqXrajwBNRUwunmdw==",
|
"integrity": "sha512-7fHLMNsm/2DlGwyIMkdH2xIeRzb5I69bLsFaEVtX+gqmGhByy0wtOAgHkiOew3PtXozSJyh+iXifjLgQzWdczw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"@rc-component/context": "^1.4.0",
|
"@rc-component/context": "^1.4.0",
|
||||||
"classnames": "^2.2.5",
|
"classnames": "^2.2.5",
|
||||||
"rc-resize-observer": "^1.1.0",
|
"rc-resize-observer": "^1.1.0",
|
||||||
"rc-util": "^5.36.0",
|
"rc-util": "^5.37.0",
|
||||||
"rc-virtual-list": "^3.11.1"
|
"rc-virtual-list": "^3.11.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -18371,9 +18372,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-tabs": {
|
"node_modules/rc-tabs": {
|
||||||
"version": "12.12.1",
|
"version": "14.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-12.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-14.0.0.tgz",
|
||||||
"integrity": "sha512-e10VBjEkECdPl4XZSs9to81SE+mgclBTM7J8/LMsFqmJoi05Tci91bRnmeeDtrcOCx2PuZdJv57XUlC4d8PEIw==",
|
"integrity": "sha512-lp1YWkaPnjlyhOZCPrAWxK6/P6nMGX/BAZcAC3nuVwKz0Byfp+vNnQKK8BRCP2g/fzu+SeB5dm9aUigRu3tRkQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.11.2",
|
"@babel/runtime": "^7.11.2",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
|
@ -18392,13 +18393,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-textarea": {
|
"node_modules/rc-textarea": {
|
||||||
"version": "1.4.0",
|
"version": "1.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.6.3.tgz",
|
||||||
"integrity": "sha512-CiqK+uyoJlnfufbC0kwfHJpfElhQacuDSNyNQ/xGnA/QMaJLDbgmqRT8QmX0T0KD/ws/hy6qqRaGJSsrRR5uiQ==",
|
"integrity": "sha512-8k7+8Y2GJ/cQLiClFMg8kUXOOdvcFQrnGeSchOvI2ZMIVvX5a3zQpLxoODL0HTrvU63fPkRmMuqaEcOF9dQemA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.2.1",
|
"classnames": "^2.2.1",
|
||||||
"rc-input": "~1.2.1",
|
"rc-input": "~1.4.0",
|
||||||
"rc-resize-observer": "^1.0.0",
|
"rc-resize-observer": "^1.0.0",
|
||||||
"rc-util": "^5.27.0"
|
"rc-util": "^5.27.0"
|
||||||
},
|
},
|
||||||
|
@ -18408,9 +18409,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-tooltip": {
|
"node_modules/rc-tooltip": {
|
||||||
"version": "6.1.2",
|
"version": "6.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.1.3.tgz",
|
||||||
"integrity": "sha512-89zwvybvCxGJu3+gGF8w5AXd4HHk6hIN7K0vZbkzjilVaEAIWPqc1fcyeUeP71n3VCcw7pTL9LyFupFbrx8gHw==",
|
"integrity": "sha512-HMSbSs5oieZ7XddtINUddBLSVgsnlaSb3bZrzzGWjXa7/B7nNedmsuz72s7EWFEro9mNa7RyF3gOXKYqvJiTcQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.11.2",
|
"@babel/runtime": "^7.11.2",
|
||||||
"@rc-component/trigger": "^1.18.0",
|
"@rc-component/trigger": "^1.18.0",
|
||||||
|
@ -18422,9 +18423,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-tree": {
|
"node_modules/rc-tree": {
|
||||||
"version": "5.7.12",
|
"version": "5.8.5",
|
||||||
"resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.7.12.tgz",
|
"resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.5.tgz",
|
||||||
"integrity": "sha512-LXA5nY2hG5koIAlHW5sgXgLpOMz+bFRbnZZ+cCg0tQs4Wv1AmY7EDi1SK7iFXhslYockbqUerQan82jljoaItg==",
|
"integrity": "sha512-PRfcZtVDNkR7oh26RuNe1hpw11c1wfgzwmPFL0lnxGnYefe9lDAO6cg5wJKIAwyXFVt5zHgpjYmaz0CPy1ZtKg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
|
@ -18441,14 +18442,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-tree-select": {
|
"node_modules/rc-tree-select": {
|
||||||
"version": "5.13.0",
|
"version": "5.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.13.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.17.0.tgz",
|
||||||
"integrity": "sha512-g01JU9EdE7j/9KfDKtmvFqJ7ZDNIYDzkpmAXllbTBFoRNhWJBjW1x/dCZLVG+IdZeIz8SKJkgZzCf1CUZrzV/Q==",
|
"integrity": "sha512-7sRGafswBhf7n6IuHyCEFCildwQIgyKiV8zfYyUoWfZEFdhuk7lCH+DN0aHt+oJrdiY9+6Io/LDXloGe01O8XQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
"rc-select": "~14.9.0",
|
"rc-select": "~14.11.0-0",
|
||||||
"rc-tree": "~5.7.0",
|
"rc-tree": "~5.8.1",
|
||||||
"rc-util": "^5.16.1"
|
"rc-util": "^5.16.1"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
@ -18457,9 +18458,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-upload": {
|
"node_modules/rc-upload": {
|
||||||
"version": "4.3.5",
|
"version": "4.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.5.2.tgz",
|
||||||
"integrity": "sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA==",
|
"integrity": "sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.18.3",
|
"@babel/runtime": "^7.18.3",
|
||||||
"classnames": "^2.2.5",
|
"classnames": "^2.2.5",
|
||||||
|
@ -18471,9 +18472,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-util": {
|
"node_modules/rc-util": {
|
||||||
"version": "5.38.0",
|
"version": "5.38.1",
|
||||||
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.38.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.38.1.tgz",
|
||||||
"integrity": "sha512-yV/YBNdFn+edyBpBdCqkPE29Su0jWcHNgwx2dJbRqMrMfrUcMJUjCRV+ZPhcvWyKFJ63GzEerPrz9JIVo0zXmA==",
|
"integrity": "sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.18.3",
|
"@babel/runtime": "^7.18.3",
|
||||||
"react-is": "^18.2.0"
|
"react-is": "^18.2.0"
|
||||||
|
@ -18489,9 +18490,9 @@
|
||||||
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
|
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
|
||||||
},
|
},
|
||||||
"node_modules/rc-virtual-list": {
|
"node_modules/rc-virtual-list": {
|
||||||
"version": "3.11.2",
|
"version": "3.11.4",
|
||||||
"resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.11.2.tgz",
|
"resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.11.4.tgz",
|
||||||
"integrity": "sha512-MTFLL2LOHr3+/+r+WjTIs6j8XmJE6EqdOsJvCH8SWig7qyik3aljCEImUtw5tdWR0tQhXUfbv7P7nZaLY91XPg==",
|
"integrity": "sha512-NbBi0fvyIu26gP69nQBiWgUMTPX3mr4FcuBQiVqagU0BnuX8WQkiivnMs105JROeuUIFczLrlgUhLQwTWV1XDA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.0",
|
"@babel/runtime": "^7.20.0",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
|
@ -18502,8 +18503,8 @@
|
||||||
"node": ">=8.x"
|
"node": ">=8.x"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"react": "*",
|
"react": ">=16.9.0",
|
||||||
"react-dom": "*"
|
"react-dom": ">=16.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/react": {
|
"node_modules/react": {
|
||||||
|
@ -19624,9 +19625,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/scroll-into-view-if-needed": {
|
"node_modules/scroll-into-view-if-needed": {
|
||||||
"version": "3.0.10",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz",
|
||||||
"integrity": "sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==",
|
"integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"compute-scroll-into-view": "^3.0.2"
|
"compute-scroll-into-view": "^3.0.2"
|
||||||
}
|
}
|
||||||
|
@ -20305,9 +20306,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/stylis": {
|
"node_modules/stylis": {
|
||||||
"version": "4.3.0",
|
"version": "4.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz",
|
||||||
"integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ=="
|
"integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ=="
|
||||||
},
|
},
|
||||||
"node_modules/sucrase": {
|
"node_modules/sucrase": {
|
||||||
"version": "3.32.0",
|
"version": "3.32.0",
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
"@testing-library/react": "^13.4.0",
|
"@testing-library/react": "^13.4.0",
|
||||||
"@testing-library/user-event": "^13.5.0",
|
"@testing-library/user-event": "^13.5.0",
|
||||||
"@yudiel/react-qr-scanner": "^1.1.10",
|
"@yudiel/react-qr-scanner": "^1.1.10",
|
||||||
"antd": "^5.10.3",
|
"antd": "^5.14.1",
|
||||||
"buffer": "^6.0.3",
|
"buffer": "^6.0.3",
|
||||||
"i18next": "^23.2.3",
|
"i18next": "^23.2.3",
|
||||||
"i18next-browser-languagedetector": "^7.1.0",
|
"i18next-browser-languagedetector": "^7.1.0",
|
||||||
|
|
|
@ -221,6 +221,10 @@
|
||||||
},
|
},
|
||||||
"costSummary": {
|
"costSummary": {
|
||||||
"title": "Kostenzusammenfassung",
|
"title": "Kostenzusammenfassung",
|
||||||
|
"options": {
|
||||||
|
"yearly": "Jährlich",
|
||||||
|
"monthly": "Monatlich"
|
||||||
|
},
|
||||||
"totalNet": "SUMME NETTO",
|
"totalNet": "SUMME NETTO",
|
||||||
"vat": "MWST.",
|
"vat": "MWST.",
|
||||||
"totalAmount": "GESAMTBETRAG"
|
"totalAmount": "GESAMTBETRAG"
|
||||||
|
@ -490,6 +494,7 @@
|
||||||
},
|
},
|
||||||
"paymentPlan": {
|
"paymentPlan": {
|
||||||
"title": "Zahlungsplan",
|
"title": "Zahlungsplan",
|
||||||
|
"buttonUpdateBillingDetails": "Zahlungsdetails aktualisieren",
|
||||||
"plan": "Plan",
|
"plan": "Plan",
|
||||||
"contentsOfSubscription": {
|
"contentsOfSubscription": {
|
||||||
"title": "Inhalt des Abonnements",
|
"title": "Inhalt des Abonnements",
|
||||||
|
|
|
@ -178,19 +178,19 @@
|
||||||
"products": [
|
"products": [
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
"price": "9,99 € / month",
|
"price": "9,99 € / month",
|
||||||
"featuresCount": 9,
|
"featuresCount": 9,
|
||||||
"features": [
|
"features": [
|
||||||
"Online appointment booker",
|
"Online appointment booker",
|
||||||
"Employee management",
|
"Employee management",
|
||||||
"Manage and create services",
|
"Manage and create services",
|
||||||
"Digital customer overview for efficient appointment management!",
|
"Digital customer overview for efficient appointment management!",
|
||||||
"Email notification system",
|
"Email notification system",
|
||||||
"24/7 online",
|
"24/7 online",
|
||||||
"Calendar synchronisation",
|
"Calendar synchronisation",
|
||||||
"Training video",
|
"Training video",
|
||||||
"Support"
|
"Support"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"price": "24,99 € / month",
|
"price": "24,99 € / month",
|
||||||
|
@ -211,7 +211,7 @@
|
||||||
"SEO"
|
"SEO"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"accountDetails": {
|
"accountDetails": {
|
||||||
"title": "Account details"
|
"title": "Account details"
|
||||||
|
@ -221,10 +221,19 @@
|
||||||
},
|
},
|
||||||
"costSummary": {
|
"costSummary": {
|
||||||
"title": "Cost summary",
|
"title": "Cost summary",
|
||||||
|
"options": {
|
||||||
|
"yearly": "Yearly",
|
||||||
|
"monthly": "Monthly"
|
||||||
|
},
|
||||||
"totalNet": "TOTAL NET",
|
"totalNet": "TOTAL NET",
|
||||||
"vat": "VAT",
|
"vat": "VAT",
|
||||||
"totalAmount": "TOTAL AMOUNT"
|
"totalAmount": "TOTAL AMOUNT"
|
||||||
},
|
},
|
||||||
|
"checkoutCanceled": {
|
||||||
|
"title": "Order canceled",
|
||||||
|
"subTitle": "The order has been canceled. Please try again.",
|
||||||
|
"buttonBackToPriceOverview": "Back to price overview"
|
||||||
|
},
|
||||||
"request": {
|
"request": {
|
||||||
"400": {
|
"400": {
|
||||||
"title": "Sign up failed",
|
"title": "Sign up failed",
|
||||||
|
@ -494,6 +503,7 @@
|
||||||
},
|
},
|
||||||
"paymentPlan": {
|
"paymentPlan": {
|
||||||
"title": "Payment plan",
|
"title": "Payment plan",
|
||||||
|
"buttonUpdateBillingDetails": "Update billing details",
|
||||||
"plan": "Plan",
|
"plan": "Plan",
|
||||||
"contentsOfSubscription": {
|
"contentsOfSubscription": {
|
||||||
"title": "Contents of subscription",
|
"title": "Contents of subscription",
|
||||||
|
|
|
@ -8,6 +8,12 @@ import Verification from "../../Pages/Verification";
|
||||||
// Lazy-loaded components
|
// Lazy-loaded components
|
||||||
const Authentication = lazy(() => import("../../Pages/Authentication"));
|
const Authentication = lazy(() => import("../../Pages/Authentication"));
|
||||||
const SignUp = lazy(() => import("../../Pages/Authentication/SignUp"));
|
const SignUp = lazy(() => import("../../Pages/Authentication/SignUp"));
|
||||||
|
const CheckoutSuccess = lazy(() =>
|
||||||
|
import("../../Pages/Authentication/CheckoutSuccess")
|
||||||
|
);
|
||||||
|
const CheckoutCanceled = lazy(() =>
|
||||||
|
import("../../Pages/Authentication/CheckoutCanceled")
|
||||||
|
);
|
||||||
const Dashboard = lazy(() => import("../../Pages/Dashboard"));
|
const Dashboard = lazy(() => import("../../Pages/Dashboard"));
|
||||||
const PaymentPlan = lazy(() => import("../../Pages/PaymentPlan"));
|
const PaymentPlan = lazy(() => import("../../Pages/PaymentPlan"));
|
||||||
const PageNotFound = lazy(() => import("../../Pages/PageNotFound"));
|
const PageNotFound = lazy(() => import("../../Pages/PageNotFound"));
|
||||||
|
@ -51,6 +57,24 @@ export function AuthenticationRoutes() {
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<Route
|
||||||
|
path={`${Constants.ROUTE_PATHS.AUTHENTICATION.CHECKOUT_SUCCESS}/:sessionId`}
|
||||||
|
element={
|
||||||
|
<MySupsenseFallback>
|
||||||
|
<CheckoutSuccess />
|
||||||
|
</MySupsenseFallback>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Route
|
||||||
|
path={`${Constants.ROUTE_PATHS.AUTHENTICATION.CHECKOUT_CANCELED}/:sessionId`}
|
||||||
|
element={
|
||||||
|
<MySupsenseFallback>
|
||||||
|
<CheckoutCanceled />
|
||||||
|
</MySupsenseFallback>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
|
||||||
<Route
|
<Route
|
||||||
path={Constants.ROUTE_PATHS.AUTHENTICATION.FORGOT_PASSWORD}
|
path={Constants.ROUTE_PATHS.AUTHENTICATION.FORGOT_PASSWORD}
|
||||||
element={
|
element={
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
import { Spin } from "antd";
|
||||||
|
import MyCenteredContainer from "../MyContainer";
|
||||||
|
|
||||||
|
export default function MyCenteredSpin({ fullHeight = false }) {
|
||||||
|
return (
|
||||||
|
<MyCenteredContainer fullHeight>
|
||||||
|
<Spin size="large" />
|
||||||
|
</MyCenteredContainer>
|
||||||
|
);
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
export default function MyCenteredContainer({ children }) {
|
export default function MyCenteredContainer({ children, fullHeight = false }) {
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
|
@ -7,7 +7,7 @@ export default function MyCenteredContainer({ children }) {
|
||||||
justifyContent: "center",
|
justifyContent: "center",
|
||||||
alignContent: "center",
|
alignContent: "center",
|
||||||
alignItems: "center",
|
alignItems: "center",
|
||||||
height: "85.3vh",
|
height: fullHeight ? "100vh" : "85.3vh",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{children}
|
{children}
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
import { Spin } from "antd";
|
import { Spin } from "antd";
|
||||||
import { Suspense } from "react";
|
import { Suspense } from "react";
|
||||||
import MyCenteredContainer from "../MyContainer";
|
import MyCenteredSpin from "../MyCenteredSpin";
|
||||||
|
|
||||||
export function MySupsenseFallback({ children, spinnerCentered = true }) {
|
export function MySupsenseFallback({ children, spinnerCentered = true }) {
|
||||||
return (
|
return (
|
||||||
<Suspense
|
<Suspense
|
||||||
fallback={
|
fallback={
|
||||||
spinnerCentered ? (
|
spinnerCentered ? (
|
||||||
<MyCenteredContainer>
|
<MyCenteredSpin fullHeight />
|
||||||
<Spin size="large" />
|
|
||||||
</MyCenteredContainer>
|
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
import { Button, Modal, Result } from "antd";
|
||||||
|
import { useParams } from "react-router-dom";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import MyCenteredSpin from "../../Components/MyCenteredSpin";
|
||||||
|
import { RequestState } from "../../Components/MyRequestStateItem";
|
||||||
|
import { myFetch } from "../../utils";
|
||||||
|
import PageNotFound from "../PageNotFound";
|
||||||
|
import { BackToZeitAdlerPricingOverview } from ".";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
|
||||||
|
export default function CheckoutCanceled() {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
const [isRequesting, setIsRequesting] = useState(RequestState.INIT);
|
||||||
|
|
||||||
|
const { sessionId } = useParams();
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
// was set in sign up page
|
||||||
|
localStorage.removeItem("tmp_session");
|
||||||
|
|
||||||
|
myFetch({
|
||||||
|
url: "/payment/checkout/canceled",
|
||||||
|
method: "POST",
|
||||||
|
body: {
|
||||||
|
sessionId: sessionId,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(() => setIsRequesting(RequestState.SUCCESS))
|
||||||
|
.catch(() => setIsRequesting(RequestState.FAILED));
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
if (isRequesting === RequestState.INIT) {
|
||||||
|
return <MyCenteredSpin fullHeight />;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Modal
|
||||||
|
open={true}
|
||||||
|
mask={false}
|
||||||
|
closable={false}
|
||||||
|
centered
|
||||||
|
keyboard={false}
|
||||||
|
footer={null}
|
||||||
|
>
|
||||||
|
{isRequesting === RequestState.FAILED ? (
|
||||||
|
<PageNotFound />
|
||||||
|
) : (
|
||||||
|
<Result
|
||||||
|
status="error"
|
||||||
|
title={t("authentication.signUp.checkoutCanceled.title")}
|
||||||
|
subTitle={t("authentication.signUp.checkoutCanceled.subTitle")}
|
||||||
|
extra={[
|
||||||
|
<Button
|
||||||
|
type="primary"
|
||||||
|
key="back"
|
||||||
|
onClick={() => BackToZeitAdlerPricingOverview()}
|
||||||
|
>
|
||||||
|
{t(
|
||||||
|
"authentication.signUp.checkoutCanceled.buttonBackToPriceOverview"
|
||||||
|
)}
|
||||||
|
</Button>,
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</Modal>
|
||||||
|
);
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
import { useParams } from "react-router-dom";
|
||||||
|
import { useEffect } from "react";
|
||||||
|
import { myFetch, showUnkownErrorNotification } from "../../utils";
|
||||||
|
import MyCenteredSpin from "../../Components/MyCenteredSpin";
|
||||||
|
|
||||||
|
export default function CheckoutSuccess() {
|
||||||
|
const { sessionId } = useParams();
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setInterval(() => {
|
||||||
|
myFetch({
|
||||||
|
method: "POST",
|
||||||
|
url: "/payment/checkout/success",
|
||||||
|
body: {
|
||||||
|
sessionId: sessionId,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then((response) => {
|
||||||
|
// payment success
|
||||||
|
if (response.status === 1) {
|
||||||
|
const session = localStorage.getItem("tmp_session");
|
||||||
|
|
||||||
|
if (session) {
|
||||||
|
localStorage.setItem("session", session);
|
||||||
|
}
|
||||||
|
|
||||||
|
localStorage.removeItem("tmp_session");
|
||||||
|
|
||||||
|
window.location.href = "/";
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(() => showUnkownErrorNotification());
|
||||||
|
}, 2000);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return <MyCenteredSpin fullHeight />;
|
||||||
|
}
|
|
@ -11,6 +11,7 @@ import {
|
||||||
showUnkownErrorNotification,
|
showUnkownErrorNotification,
|
||||||
} from "../../utils";
|
} from "../../utils";
|
||||||
import {
|
import {
|
||||||
|
BackToZeitAdlerPricingOverview,
|
||||||
MyRecaptcha,
|
MyRecaptcha,
|
||||||
PendingEmailVerification,
|
PendingEmailVerification,
|
||||||
PrivacyPolicyCheckbox,
|
PrivacyPolicyCheckbox,
|
||||||
|
@ -274,9 +275,7 @@ export function Login({ notificationApi }) {
|
||||||
<Button
|
<Button
|
||||||
type="link"
|
type="link"
|
||||||
style={{ padding: 0 }}
|
style={{ padding: 0 }}
|
||||||
onClick={() =>
|
onClick={() => BackToZeitAdlerPricingOverview()}
|
||||||
navigate(Constants.ROUTE_PATHS.AUTHENTICATION.SIGN_UP)
|
|
||||||
}
|
|
||||||
>
|
>
|
||||||
{t("authentication.signUpLink")}
|
{t("authentication.signUpLink")}
|
||||||
</Button>
|
</Button>
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import { loadStripe } from "@stripe/stripe-js";
|
|
||||||
import {
|
import {
|
||||||
Affix,
|
Affix,
|
||||||
Button,
|
Button,
|
||||||
|
@ -8,6 +7,8 @@ import {
|
||||||
Flex,
|
Flex,
|
||||||
Form,
|
Form,
|
||||||
Row,
|
Row,
|
||||||
|
Segmented,
|
||||||
|
Skeleton,
|
||||||
Typography,
|
Typography,
|
||||||
notification,
|
notification,
|
||||||
} from "antd";
|
} from "antd";
|
||||||
|
@ -28,12 +29,6 @@ import {
|
||||||
MyPasswordFormInput,
|
MyPasswordFormInput,
|
||||||
MyUsernameFormInput,
|
MyUsernameFormInput,
|
||||||
} from "../../Components/MyFormInputs";
|
} from "../../Components/MyFormInputs";
|
||||||
import {
|
|
||||||
Elements,
|
|
||||||
PaymentElement,
|
|
||||||
useElements,
|
|
||||||
useStripe,
|
|
||||||
} from "@stripe/react-stripe-js";
|
|
||||||
import {
|
import {
|
||||||
MyRecaptcha,
|
MyRecaptcha,
|
||||||
PendingEmailVerification,
|
PendingEmailVerification,
|
||||||
|
@ -41,6 +36,7 @@ import {
|
||||||
} from ".";
|
} from ".";
|
||||||
import MyAppLogo from "../../Components/MyAppLogo";
|
import MyAppLogo from "../../Components/MyAppLogo";
|
||||||
import { CheckOutlined } from "@ant-design/icons";
|
import { CheckOutlined } from "@ant-design/icons";
|
||||||
|
import { RequestState } from "../../Components/MyRequestStateItem";
|
||||||
|
|
||||||
const SignUpStep = {
|
const SignUpStep = {
|
||||||
SIGN_UP: 1,
|
SIGN_UP: 1,
|
||||||
|
@ -87,8 +83,6 @@ export default function SignUp({ paymentPlan }) {
|
||||||
navigate={navigate}
|
navigate={navigate}
|
||||||
form={form}
|
form={form}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<PaymentDetails notificationApi={notificationApi} t={t} />
|
|
||||||
</Col>
|
</Col>
|
||||||
|
|
||||||
<Col
|
<Col
|
||||||
|
@ -137,23 +131,6 @@ function AccountDetails({ t, form }) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
<Flex justify="center" style={{ paddingTop: 12 }}>
|
|
||||||
<Typography.Text>
|
|
||||||
{t("authentication.signUp.alreadyHaveAccount")}{" "}
|
|
||||||
<Button
|
|
||||||
type="link"
|
|
||||||
style={{ padding: 0 }}
|
|
||||||
onClick={() =>
|
|
||||||
navigate(Constants.ROUTE_PATHS.AUTHENTICATION.LOGIN)
|
|
||||||
}
|
|
||||||
>
|
|
||||||
{t("authentication.loginLink")}
|
|
||||||
</Button>
|
|
||||||
</Typography.Text>
|
|
||||||
</Flex>
|
|
||||||
*/
|
|
||||||
|
|
||||||
function ChoosenProduct({ t, paymentPlan }) {
|
function ChoosenProduct({ t, paymentPlan }) {
|
||||||
return (
|
return (
|
||||||
<Card
|
<Card
|
||||||
|
@ -194,140 +171,14 @@ function ChoosenProduct({ t, paymentPlan }) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const stripePromise = loadStripe(process.env.REACT_APP_STRIPE_PUBLISHABLE_KEY);
|
|
||||||
|
|
||||||
function PaymentDetails({ notificationApi, t }) {
|
|
||||||
const [clientSecret, setClientSecret] = useState(null);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
myFetch({
|
|
||||||
method: "POST",
|
|
||||||
url: "/payment/create-payment-intent",
|
|
||||||
})
|
|
||||||
.then((data) => setClientSecret(data.clientSecret))
|
|
||||||
.catch((err) => {
|
|
||||||
console.error(err);
|
|
||||||
showUnkownErrorNotification(notificationApi, t);
|
|
||||||
});
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Card
|
|
||||||
title={t("authentication.signUp.paymentDetails.title")}
|
|
||||||
style={{ marginBottom: 40 }}
|
|
||||||
>
|
|
||||||
{clientSecret && (
|
|
||||||
<Elements
|
|
||||||
options={{
|
|
||||||
clientSecret: clientSecret,
|
|
||||||
appearance: {
|
|
||||||
theme: "stripe",
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
stripe={stripePromise}
|
|
||||||
>
|
|
||||||
<CheckoutForm />
|
|
||||||
</Elements>
|
|
||||||
)}
|
|
||||||
</Card>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
function CheckoutForm() {
|
|
||||||
const stripe = useStripe();
|
|
||||||
const elements = useElements();
|
|
||||||
|
|
||||||
const [message, setMessage] = useState(null);
|
|
||||||
const [isLoading, setIsLoading] = useState(false);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (!stripe) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const clientSecret = new URLSearchParams(window.location.search).get(
|
|
||||||
"payment_intent_client_secret"
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!clientSecret) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
stripe.retrievePaymentIntent(clientSecret).then(({ paymentIntent }) => {
|
|
||||||
switch (paymentIntent.status) {
|
|
||||||
case "succeeded":
|
|
||||||
setMessage("Payment succeeded!");
|
|
||||||
break;
|
|
||||||
case "processing":
|
|
||||||
setMessage("Your payment is processing.");
|
|
||||||
break;
|
|
||||||
case "requires_payment_method":
|
|
||||||
setMessage("Your payment was not successful, please try again.");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
setMessage("Something went wrong.");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, [stripe]);
|
|
||||||
|
|
||||||
const handleSubmit = async (e) => {
|
|
||||||
e.preventDefault();
|
|
||||||
|
|
||||||
if (!stripe || !elements) {
|
|
||||||
// Stripe.js hasn't yet loaded.
|
|
||||||
// Make sure to disable form submission until Stripe.js has loaded.
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
setIsLoading(true);
|
|
||||||
|
|
||||||
const { error } = await stripe.confirmPayment({
|
|
||||||
elements,
|
|
||||||
confirmParams: {
|
|
||||||
receipt_email: "test@roese.dev",
|
|
||||||
// Make sure to change this to your payment completion page
|
|
||||||
return_url: `${Constants.DASHBOARD_ADDRESS}/buy/premium`,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
// This point will only be reached if there is an immediate error when
|
|
||||||
// confirming the payment. Otherwise, your customer will be redirected to
|
|
||||||
// your `return_url`. For some payment methods like iDEAL, your customer will
|
|
||||||
// be redirected to an intermediate site first to authorize the payment, then
|
|
||||||
// redirected to the `return_url`.
|
|
||||||
if (error.type === "card_error" || error.type === "validation_error") {
|
|
||||||
setMessage(error.message);
|
|
||||||
} else {
|
|
||||||
setMessage("An unexpected error occurred.");
|
|
||||||
}
|
|
||||||
|
|
||||||
setIsLoading(false);
|
|
||||||
};
|
|
||||||
|
|
||||||
const paymentElementOptions = {
|
|
||||||
layout: "tabs",
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<form id="payment-form" onSubmit={handleSubmit}>
|
|
||||||
<PaymentElement id="payment-element" options={paymentElementOptions} />
|
|
||||||
<button disabled={isLoading || !stripe || !elements} id="submit">
|
|
||||||
<span id="button-text">
|
|
||||||
{isLoading ? <div className="spinner" id="spinner"></div> : "Pay now"}
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
{/* Show any error or success messages */}
|
|
||||||
{message && <div id="payment-message">{message}</div>}
|
|
||||||
</form>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
function CostSummary({ notificationApi, paymentPlan, form }) {
|
function CostSummary({ notificationApi, paymentPlan, form }) {
|
||||||
const { t, i18n } = useTranslation();
|
const { t, i18n } = useTranslation();
|
||||||
|
|
||||||
const [isRequesting, setIsRequesting] = useState(false);
|
const [isRequesting, setIsRequesting] = useState(RequestState.INIT);
|
||||||
|
const recaptchaRef = useRef(null);
|
||||||
const recaptchaValueRef = useRef(null);
|
const recaptchaValueRef = useRef(null);
|
||||||
|
const [prices, setPrices] = useState(null);
|
||||||
|
const [segmentedValue, setSegmentedValue] = useState(1);
|
||||||
|
|
||||||
const showErrorNotification = (errStatus) => {
|
const showErrorNotification = (errStatus) => {
|
||||||
if (errStatus === 400) {
|
if (errStatus === 400) {
|
||||||
|
@ -342,7 +193,7 @@ function CostSummary({ notificationApi, paymentPlan, form }) {
|
||||||
form
|
form
|
||||||
.validateFields()
|
.validateFields()
|
||||||
.then((values) => {
|
.then((values) => {
|
||||||
setIsRequesting(true);
|
setIsRequesting(RequestState.REQUESTING);
|
||||||
|
|
||||||
myFetch({
|
myFetch({
|
||||||
url: `/user/auth/signup`,
|
url: `/user/auth/signup`,
|
||||||
|
@ -355,30 +206,76 @@ function CostSummary({ notificationApi, paymentPlan, form }) {
|
||||||
language: i18n.language,
|
language: i18n.language,
|
||||||
rememberMe: true,
|
rememberMe: true,
|
||||||
recaptcha: recaptchaValueRef.current,
|
recaptcha: recaptchaValueRef.current,
|
||||||
|
paymentPlan: paymentPlan,
|
||||||
|
paymentInterval: segmentedValue,
|
||||||
},
|
},
|
||||||
notificationApi: notificationApi,
|
notificationApi: notificationApi,
|
||||||
t: t,
|
t: t,
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then((data) => {
|
||||||
/*
|
setIsRequesting(RequestState.NOTHING);
|
||||||
setStep(SignUpStep.PENDING_EMAIL_VERIFICATION)
|
|
||||||
*/
|
localStorage.setItem("tmp_session", data.XAuthorization);
|
||||||
|
window.location.href = data.redirectUrl;
|
||||||
})
|
})
|
||||||
.catch((errStatus) => {
|
.catch((errStatus) => {
|
||||||
|
recaptchaRef.current.reset();
|
||||||
showErrorNotification(errStatus);
|
showErrorNotification(errStatus);
|
||||||
setIsRequesting(false);
|
setIsRequesting(false);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
recaptchaRef.current.reset();
|
||||||
showInputsInvalidNotification(notificationApi, t);
|
showInputsInvalidNotification(notificationApi, t);
|
||||||
setIsRequesting(false);
|
setIsRequesting(false);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
myFetch({
|
||||||
|
url: `/payment/prices/${paymentPlan}`,
|
||||||
|
method: "GET",
|
||||||
|
})
|
||||||
|
.then((data) => {
|
||||||
|
setIsRequesting(RequestState.NOTHING);
|
||||||
|
setPrices(data.prices);
|
||||||
|
})
|
||||||
|
.catch(() => showUnkownErrorNotification(notificationApi, t));
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const formatPrice = (price) => {
|
||||||
|
return (price / 100).toLocaleString("de-DE", {
|
||||||
|
style: "currency",
|
||||||
|
currency: "EUR",
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const price = prices ? prices[segmentedValue].unit_amount : 0;
|
||||||
|
|
||||||
|
const totalNet = formatPrice(price);
|
||||||
|
const vat = formatPrice((price / 100) * 19);
|
||||||
|
const totalAmount = formatPrice(price + (price / 100) * 19);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Affix offsetTop={16}>
|
<Affix offsetTop={16}>
|
||||||
<Card title={t("authentication.signUp.costSummary.title")}>
|
<Card title={t("authentication.signUp.costSummary.title")}>
|
||||||
<Form form={form}>
|
<Form form={form}>
|
||||||
|
<Segmented
|
||||||
|
block
|
||||||
|
options={[
|
||||||
|
{
|
||||||
|
label: t("authentication.signUp.costSummary.options.yearly"),
|
||||||
|
value: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: t("authentication.signUp.costSummary.options.monthly"),
|
||||||
|
value: 0,
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
value={segmentedValue}
|
||||||
|
onChange={(v) => setSegmentedValue(v)}
|
||||||
|
/>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
backgroundColor: "#393a56",
|
backgroundColor: "#393a56",
|
||||||
|
@ -388,71 +285,81 @@ function CostSummary({ notificationApi, paymentPlan, form }) {
|
||||||
textAlign: "center",
|
textAlign: "center",
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
padding: 8,
|
padding: 8,
|
||||||
|
marginTop: 12,
|
||||||
marginBottom: 12,
|
marginBottom: 12,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{Constants.APP_NAME} - {Constants.PAYMENT_PLAN[paymentPlan].name}
|
{Constants.APP_NAME} - {Constants.PAYMENT_PLAN[paymentPlan].name}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Flex justify="space-between">
|
<Flex justify="space-between">
|
||||||
<Typography.Text style={{ fontSize: 16 }}>
|
<Typography.Text style={{ fontSize: 16 }}>
|
||||||
{t("authentication.signUp.costSummary.totalNet")}
|
{t("authentication.signUp.costSummary.totalNet")}
|
||||||
</Typography.Text>
|
</Typography.Text>
|
||||||
<Typography.Text style={{ fontSize: 16 }}>
|
{isRequesting === RequestState.INIT ? (
|
||||||
{
|
<Skeleton.Button active size="small" />
|
||||||
Constants.PAYMENT_PLAN[paymentPlan].price[i18n.language]
|
) : (
|
||||||
.totalNet
|
<Typography.Text style={{ fontSize: 16 }}>
|
||||||
}
|
{totalNet}
|
||||||
</Typography.Text>
|
</Typography.Text>
|
||||||
|
)}
|
||||||
</Flex>
|
</Flex>
|
||||||
|
|
||||||
<Divider style={{ margin: 8 }} />
|
<Divider style={{ margin: 8 }} />
|
||||||
|
|
||||||
<Flex justify="space-between">
|
<Flex justify="space-between">
|
||||||
<Typography.Text style={{ fontSize: 16 }}>
|
<Typography.Text style={{ fontSize: 16 }}>
|
||||||
{" "}
|
|
||||||
{t("authentication.signUp.costSummary.vat")}
|
{t("authentication.signUp.costSummary.vat")}
|
||||||
</Typography.Text>
|
</Typography.Text>
|
||||||
<Typography.Text style={{ fontSize: 16 }}>
|
{isRequesting === RequestState.INIT ? (
|
||||||
{Constants.PAYMENT_PLAN[paymentPlan].price[i18n.language].vat}
|
<Skeleton.Button active size="small" />
|
||||||
</Typography.Text>
|
) : (
|
||||||
|
<Typography.Text style={{ fontSize: 16 }}>{vat}</Typography.Text>
|
||||||
|
)}
|
||||||
</Flex>
|
</Flex>
|
||||||
|
|
||||||
<Divider style={{ margin: 8 }} />
|
<Divider style={{ margin: 8 }} />
|
||||||
|
|
||||||
<Flex justify="space-between" style={{ marginBottom: 20 }}>
|
<Flex
|
||||||
|
justify="space-between"
|
||||||
|
align="center"
|
||||||
|
style={{ marginBottom: 20 }}
|
||||||
|
>
|
||||||
<Typography.Text style={{ fontSize: 16, fontWeight: "600" }}>
|
<Typography.Text style={{ fontSize: 16, fontWeight: "600" }}>
|
||||||
{t("authentication.signUp.costSummary.totalAmount")}
|
{t("authentication.signUp.costSummary.totalAmount")}
|
||||||
</Typography.Text>
|
</Typography.Text>
|
||||||
<Typography.Text
|
{isRequesting === RequestState.INIT ? (
|
||||||
style={{
|
<Skeleton.Button active size="large" />
|
||||||
fontSize: 16,
|
) : (
|
||||||
backgroundColor: "#4d61d6",
|
<Typography.Text
|
||||||
padding: 4,
|
style={{
|
||||||
paddingLeft: 20,
|
fontSize: 16,
|
||||||
paddingRight: 20,
|
backgroundColor: "#4d61d6",
|
||||||
borderRadius: 20,
|
padding: 4,
|
||||||
color: "#fff",
|
paddingLeft: 20,
|
||||||
fontWeight: "bold",
|
paddingRight: 20,
|
||||||
}}
|
borderRadius: 20,
|
||||||
>
|
color: "#fff",
|
||||||
{
|
fontWeight: "bold",
|
||||||
Constants.PAYMENT_PLAN[paymentPlan].price[i18n.language]
|
}}
|
||||||
.totalAmount
|
>
|
||||||
}
|
{totalAmount}
|
||||||
</Typography.Text>
|
</Typography.Text>
|
||||||
|
)}
|
||||||
</Flex>
|
</Flex>
|
||||||
|
|
||||||
<PrivacyPolicyCheckbox />
|
<PrivacyPolicyCheckbox />
|
||||||
|
|
||||||
<MyRecaptcha recaptchaValueRef={recaptchaValueRef} />
|
<MyRecaptcha
|
||||||
|
recaptchaRef={recaptchaRef}
|
||||||
|
recaptchaValueRef={recaptchaValueRef}
|
||||||
|
/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="large"
|
size="large"
|
||||||
block
|
block
|
||||||
onClick={handleSubmit}
|
onClick={handleSubmit}
|
||||||
loading={isRequesting}
|
loading={isRequesting === RequestState.REQUESTING}
|
||||||
>
|
>
|
||||||
{t("authentication.signUp.button")}
|
{t("authentication.signUp.button")}
|
||||||
</Button>
|
</Button>
|
||||||
|
|
|
@ -117,3 +117,7 @@ export function PendingEmailVerification() {
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function BackToZeitAdlerPricingOverview() {
|
||||||
|
window.location.href = process.env.REACT_APP_ZEITADLER_HOMEPAGE_PRICING;
|
||||||
|
}
|
||||||
|
|
|
@ -1,14 +1,47 @@
|
||||||
import { Card, Descriptions } from "antd";
|
import { Button, Card, Descriptions } from "antd";
|
||||||
import { useAppContext } from "../../Contexts/AppContext";
|
import { useAppContext } from "../../Contexts/AppContext";
|
||||||
import { Constants } from "../../utils";
|
import { Constants, myFetch } from "../../utils";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
|
import { CreditCardOutlined } from "@ant-design/icons";
|
||||||
|
import { useState } from "react";
|
||||||
|
|
||||||
export default function PaymentPlan() {
|
export default function PaymentPlan() {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const appContext = useAppContext();
|
const appContext = useAppContext();
|
||||||
|
|
||||||
|
const [isRequestingBillingDetails, setIsRequestingBillingDetails] =
|
||||||
|
useState(false);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card title={t("paymentPlan.title")}>
|
<Card
|
||||||
|
title={t("paymentPlan.title")}
|
||||||
|
extra={
|
||||||
|
<Button
|
||||||
|
type="link"
|
||||||
|
icon={<CreditCardOutlined />}
|
||||||
|
loading={isRequestingBillingDetails}
|
||||||
|
onClick={() => {
|
||||||
|
setIsRequestingBillingDetails(true);
|
||||||
|
|
||||||
|
myFetch({
|
||||||
|
method: "GET",
|
||||||
|
url: "/payment/portal",
|
||||||
|
})
|
||||||
|
.then((response) => {
|
||||||
|
console.log("response", response);
|
||||||
|
|
||||||
|
window.location.href = response.url;
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error("error", error);
|
||||||
|
setIsRequestingBillingDetails(false);
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{t("paymentPlan.buttonUpdateBillingDetails")}
|
||||||
|
</Button>
|
||||||
|
}
|
||||||
|
>
|
||||||
<Descriptions>
|
<Descriptions>
|
||||||
<Descriptions.Item label={t("paymentPlan.plan")}>
|
<Descriptions.Item label={t("paymentPlan.plan")}>
|
||||||
{Constants.PAYMENT_PLAN[appContext.paymentPlan].name}
|
{Constants.PAYMENT_PLAN[appContext.paymentPlan].name}
|
||||||
|
|
|
@ -18,6 +18,13 @@ root.render(
|
||||||
colorPrimary: "#6878d6",
|
colorPrimary: "#6878d6",
|
||||||
colorInfo: "#6878d6",
|
colorInfo: "#6878d6",
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
Segmented: {
|
||||||
|
// used in sign up
|
||||||
|
itemSelectedBg: "#6878d6",
|
||||||
|
itemSelectedColor: "#fff",
|
||||||
|
},
|
||||||
|
},
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<App />
|
<App />
|
||||||
|
|
|
@ -48,6 +48,8 @@ export const Constants = {
|
||||||
LOGIN: "/login",
|
LOGIN: "/login",
|
||||||
SIGN_UP: "/buy",
|
SIGN_UP: "/buy",
|
||||||
FORGOT_PASSWORD: "/forgot-password",
|
FORGOT_PASSWORD: "/forgot-password",
|
||||||
|
CHECKOUT_SUCCESS: "/checkout/success",
|
||||||
|
CHECKOUT_CANCELED: "/checkout/canceled",
|
||||||
},
|
},
|
||||||
VERIFY: "/verify",
|
VERIFY: "/verify",
|
||||||
OVERVIEW: "/",
|
OVERVIEW: "/",
|
||||||
|
@ -348,6 +350,8 @@ export function showUnkownErrorNotification(notificationApi, t) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function handleLogout({ setUserSession }) {
|
export function handleLogout({ setUserSession }) {
|
||||||
|
console.log("handleLogout");
|
||||||
|
|
||||||
if (setUserSession !== undefined) setUserSession();
|
if (setUserSession !== undefined) setUserSession();
|
||||||
|
|
||||||
window.location.href = Constants.ROUTE_PATHS.AUTHENTICATION.LOGIN;
|
window.location.href = Constants.ROUTE_PATHS.AUTHENTICATION.LOGIN;
|
||||||
|
|
Loading…
Reference in New Issue