From eddf78e977e7119b6638dd2559a235f0772a8c2c Mon Sep 17 00:00:00 2001 From: Philipp Stracker Date: Tue, 22 Oct 2024 15:12:53 +0200 Subject: [PATCH 1/7] =?UTF-8?q?=E2=9E=95=20Add=20packages:=20data,=20data-?= =?UTF-8?q?controls?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ppcp-settings/package.json | 4 + modules/ppcp-settings/yarn.lock | 356 ++++++++++++++++++++++++++++- 2 files changed, 355 insertions(+), 5 deletions(-) diff --git a/modules/ppcp-settings/package.json b/modules/ppcp-settings/package.json index 6bc97c211..f413a2a89 100644 --- a/modules/ppcp-settings/package.json +++ b/modules/ppcp-settings/package.json @@ -8,5 +8,9 @@ }, "devDependencies": { "@wordpress/scripts": "^30.3.0" + }, + "dependencies": { + "@wordpress/data": "^10.10.0", + "@wordpress/data-controls": "^4.10.0" } } diff --git a/modules/ppcp-settings/yarn.lock b/modules/ppcp-settings/yarn.lock index cf7d62e7e..c20f993f4 100644 --- a/modules/ppcp-settings/yarn.lock +++ b/modules/ppcp-settings/yarn.lock @@ -1095,7 +1095,7 @@ "@babel/plugin-transform-modules-commonjs" "^7.25.7" "@babel/plugin-transform-typescript" "^7.25.7" -"@babel/runtime@7.25.7", "@babel/runtime@^7.8.4": +"@babel/runtime@7.25.7", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.7.tgz#7ffb53c37a8f247c8c4d335e89cdf16a2e0d0fb6" integrity sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w== @@ -1871,6 +1871,31 @@ "@svgr/plugin-jsx" "8.1.0" "@svgr/plugin-svgo" "8.1.0" +"@tannin/compile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@tannin/compile/-/compile-1.1.0.tgz#1e4d1c5364cbfeffa1c20352c053e19ef20ffe93" + integrity sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg== + dependencies: + "@tannin/evaluate" "^1.2.0" + "@tannin/postfix" "^1.1.0" + +"@tannin/evaluate@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@tannin/evaluate/-/evaluate-1.2.0.tgz#468a13c45eff45340108836fc46c708457199c3f" + integrity sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg== + +"@tannin/plural-forms@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@tannin/plural-forms/-/plural-forms-1.1.0.tgz#cffbb060d2640a56a314e3c77cbf6ea6072b51d5" + integrity sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw== + dependencies: + "@tannin/compile" "^1.1.0" + +"@tannin/postfix@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@tannin/postfix/-/postfix-1.1.0.tgz#6071f4204ae26c2e885cf3a3f1203a9f71e3f291" + integrity sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw== + "@tootallnate/once@2": version "2.0.0" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" @@ -2074,6 +2099,11 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== +"@types/mousetrap@^1.6.8": + version "1.6.15" + resolved "https://registry.yarnpkg.com/@types/mousetrap/-/mousetrap-1.6.15.tgz#f144a0c539a4cef553a631824651d48267e53c86" + integrity sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw== + "@types/node-forge@^1.3.0": version "1.3.11" resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" @@ -2098,6 +2128,11 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== +"@types/prop-types@*": + version "15.7.13" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.13.tgz#2af91918ee12d9d32914feb13f5326658461b451" + integrity sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA== + "@types/qs@*": version "6.9.16" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.16.tgz#52bba125a07c0482d26747d5d4947a64daf8f794" @@ -2108,6 +2143,21 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== +"@types/react-dom@^18.2.25": + version "18.3.1" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.1.tgz#1e4654c08a9cdcfb6594c780ac59b55aad42fe07" + integrity sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.2.79": + version "18.3.11" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.11.tgz#9d530601ff843ee0d7030d4227ea4360236bd537" + integrity sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + "@types/retry@0.12.0": version "0.12.0" resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" @@ -2498,6 +2548,15 @@ resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== +"@wordpress/api-fetch@^7.10.0": + version "7.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/api-fetch/-/api-fetch-7.10.0.tgz#25fc63c531c905e6a917074dd0fd6b945bab809e" + integrity sha512-sL71KkvtdGdaZmy7T0+nsTaBVhN0LSwkm3nh/qnebIYzpjZeiPWF/QeoGtJk/lKB15HjbTbfwvFEjiMI4dFvhA== + dependencies: + "@babel/runtime" "7.25.7" + "@wordpress/i18n" "^5.10.0" + "@wordpress/url" "^4.10.0" + "@wordpress/babel-preset-default@^8.10.0": version "8.10.0" resolved "https://registry.yarnpkg.com/@wordpress/babel-preset-default/-/babel-preset-default-8.10.0.tgz#4a95c09ec206c3a219698488cfc3731dbe0b67f4" @@ -2525,6 +2584,56 @@ resolved "https://registry.yarnpkg.com/@wordpress/browserslist-config/-/browserslist-config-6.10.0.tgz#09e569dd518649c011f5acbc743eae8645f75cd8" integrity sha512-X5BG4xWvr1Qq9S2x5ERCF7V4bpa24zbj8cWYbIJaGiCfi6vp6dFI1SbvuZPXfKyThyytTVYBvEIr6CSm6G8fuQ== +"@wordpress/compose@^7.10.0": + version "7.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/compose/-/compose-7.10.0.tgz#b2e094dfb82f8b19c4619516ab78fc3f520029da" + integrity sha512-/j4+wXthaV/KMt0VANvhhRJEJfPc21c7Tq1ZeLxgsbkq4xmi9qXeDT91cvP/U+Ta3phf15K8vdxMr8MqHHiFoQ== + dependencies: + "@babel/runtime" "7.25.7" + "@types/mousetrap" "^1.6.8" + "@wordpress/deprecated" "^4.10.0" + "@wordpress/dom" "^4.10.0" + "@wordpress/element" "^6.10.0" + "@wordpress/is-shallow-equal" "^5.10.0" + "@wordpress/keycodes" "^4.10.0" + "@wordpress/priority-queue" "^3.10.0" + "@wordpress/undo-manager" "^1.10.0" + change-case "^4.1.2" + clipboard "^2.0.11" + mousetrap "^1.6.5" + use-memo-one "^1.1.1" + +"@wordpress/data-controls@^4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/data-controls/-/data-controls-4.10.0.tgz#100dcf4700f7efcd289823d76e019d85b31343ea" + integrity sha512-a7IBnxmzZYIYQzj5iPgBfHZPR65gj+AONNFHM7EUIe9FuyqWtPHy/1jUB7z95ataadh+G4d62ZwZiR1O+prSxg== + dependencies: + "@babel/runtime" "7.25.7" + "@wordpress/api-fetch" "^7.10.0" + "@wordpress/data" "^10.10.0" + "@wordpress/deprecated" "^4.10.0" + +"@wordpress/data@^10.10.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/data/-/data-10.10.0.tgz#da8fc4004bd9f7376f7ac17148a68158ae651174" + integrity sha512-oyYl89p86+U9W6vKDqScKhUGKKzsnETj9rg8zOnT4K9ceOScjGCgdCE+XxcY9exeRg33aSYDjmvnsXXYStBYmA== + dependencies: + "@babel/runtime" "7.25.7" + "@wordpress/compose" "^7.10.0" + "@wordpress/deprecated" "^4.10.0" + "@wordpress/element" "^6.10.0" + "@wordpress/is-shallow-equal" "^5.10.0" + "@wordpress/priority-queue" "^3.10.0" + "@wordpress/private-apis" "^1.10.0" + "@wordpress/redux-routine" "^5.10.0" + deepmerge "^4.3.0" + equivalent-key-map "^0.2.2" + is-plain-object "^5.0.0" + is-promise "^4.0.0" + redux "^4.1.2" + rememo "^4.0.2" + use-memo-one "^1.1.1" + "@wordpress/dependency-extraction-webpack-plugin@^6.10.0": version "6.10.0" resolved "https://registry.yarnpkg.com/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.10.0.tgz#45ed2e9e4dfbb60bd131de755d30f07e74f68d1c" @@ -2532,6 +2641,22 @@ dependencies: json2php "^0.0.7" +"@wordpress/deprecated@^4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/deprecated/-/deprecated-4.10.0.tgz#26f4d44e929779ebaf730545799aa07a3544a213" + integrity sha512-lktJKX3AxrskTuLbJuKY/Mzg9De6MYcOzEEL+RUHxfIx8wMtiDnVTAf7epur9XuHVOmdgCCRT6D44I23MoS0sw== + dependencies: + "@babel/runtime" "7.25.7" + "@wordpress/hooks" "^4.10.0" + +"@wordpress/dom@^4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/dom/-/dom-4.10.0.tgz#f6fcfbbb813b657315c1416f51e9c3f9ad557ce1" + integrity sha512-1ZRCrDB2TV44GLwaUH9HRGQGQqXcawSEmzVPABQwfwzkUKijfbRdsWqpHrTLqlSZRImHEdp6oSON+1JmCNhXSw== + dependencies: + "@babel/runtime" "7.25.7" + "@wordpress/deprecated" "^4.10.0" + "@wordpress/e2e-test-utils-playwright@^1.10.0": version "1.10.0" resolved "https://registry.yarnpkg.com/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.10.0.tgz#41c1a9293c70afae6a2c214bf539c8bdb288f945" @@ -2544,6 +2669,27 @@ mime "^3.0.0" web-vitals "^4.2.1" +"@wordpress/element@^6.10.0": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-6.10.0.tgz#17ff5970576c96c3b2ba4f5e81c81dc99f2ce221" + integrity sha512-7zW+14vHqEn45nszSLMUqE5IbzOtvgUUgF56qlMhwabpG4l/zhaj3gO3wLDI19C13ih1vOdSjzPc3At4fB3tRQ== + dependencies: + "@babel/runtime" "7.25.7" + "@types/react" "^18.2.79" + "@types/react-dom" "^18.2.25" + "@wordpress/escape-html" "^3.10.0" + change-case "^4.1.2" + is-plain-object "^5.0.0" + react "^18.3.0" + react-dom "^18.3.0" + +"@wordpress/escape-html@^3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/escape-html/-/escape-html-3.10.0.tgz#bdc51085a77e12de55c2bd90bd223883a58e0702" + integrity sha512-3glY3MhXEHlPP0/hrS3vkRmAOHtutvoHGhkr8vnva6TLg4CsAeo42nYbuFJ+ukVMWdCtmV+28UjOeiYtG/fZOA== + dependencies: + "@babel/runtime" "7.25.7" + "@wordpress/eslint-plugin@^21.3.0": version "21.3.0" resolved "https://registry.yarnpkg.com/@wordpress/eslint-plugin/-/eslint-plugin-21.3.0.tgz#3857262f10446afa207357232f05086db47ed387" @@ -2567,6 +2713,32 @@ globals "^13.12.0" requireindex "^1.2.0" +"@wordpress/hooks@^4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/hooks/-/hooks-4.10.0.tgz#de020f6dacb250387fbbfa8f797ec0ede7fddbad" + integrity sha512-LcorV5Z9XoJCKyj5Ulgw1HPHyM2mxsSInC7wl5cuIgDFmuwPTfRndUDGWz/v86GX1GnUIB0h/ggd53vx1HiW4A== + dependencies: + "@babel/runtime" "7.25.7" + +"@wordpress/i18n@^5.10.0": + version "5.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/i18n/-/i18n-5.10.0.tgz#55db9299240d92496a3d3ecb046eb6c682ef7734" + integrity sha512-HZ6UcMHsjOocDI0zVAuP4JIl97LRmpGo/lVxzVIreaLoYitmYVDUzji02u1o7sEdRWc1Hpkm2/oO/9275rJg1w== + dependencies: + "@babel/runtime" "7.25.7" + "@wordpress/hooks" "^4.10.0" + gettext-parser "^1.3.1" + memize "^2.1.0" + sprintf-js "^1.1.1" + tannin "^1.2.0" + +"@wordpress/is-shallow-equal@^5.10.0": + version "5.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/is-shallow-equal/-/is-shallow-equal-5.10.0.tgz#71f2cc3ad3fc7cfc509dc1837dd0bc7c2b953917" + integrity sha512-KOkZzOnmjpH7hzPiaXUjhUlfKIGTzL7qUdNHBC1SFDOYpnRUSw8f1AtWxRpPBHl5dieYVx0x1qjOWjm/DtTOXg== + dependencies: + "@babel/runtime" "7.25.7" + "@wordpress/jest-console@^8.10.0": version "8.10.0" resolved "https://registry.yarnpkg.com/@wordpress/jest-console/-/jest-console-8.10.0.tgz#80c1942bb0effbbed1a831c2a71d046c36a83369" @@ -2583,6 +2755,14 @@ "@wordpress/jest-console" "^8.10.0" babel-jest "29.7.0" +"@wordpress/keycodes@^4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/keycodes/-/keycodes-4.10.0.tgz#306b56a9188d6545f669acbe5a1225e547d49d10" + integrity sha512-2i+N90HBMqQegtGqeVB8pJz8ZgKAY1eZmQegE9MXczYVac85DDOoxhY/41c44s6Kwl3waJ2Zght6UXE0OUFMxw== + dependencies: + "@babel/runtime" "7.25.7" + "@wordpress/i18n" "^5.10.0" + "@wordpress/npm-package-json-lint-config@^5.10.0": version "5.10.0" resolved "https://registry.yarnpkg.com/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.10.0.tgz#5b8951370c82b74d71e38023df29059e4c4fa552" @@ -2601,6 +2781,31 @@ resolved "https://registry.yarnpkg.com/@wordpress/prettier-config/-/prettier-config-4.10.0.tgz#33376a39005b1645287c511853aa9666ce0e7b78" integrity sha512-zT06uXepAWoXiBY8t1M5dz+DcyZ00Sm005YTJvjrLeMRLCEX9lZuZtqA/rYZsABzT90KJvdDTNP+2FsoZSOQcQ== +"@wordpress/priority-queue@^3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/priority-queue/-/priority-queue-3.10.0.tgz#63ce26931279b5a863520feb29e7199da366463e" + integrity sha512-Gjbw5NmRLrZ9KkiROJlL4I/s96bMlpd7gGkQbcCyyeLIZduGxQDzI4Jih5s0Xrm7Gj8WFd57wRDe/voZJR0ZsQ== + dependencies: + "@babel/runtime" "7.25.7" + requestidlecallback "^0.3.0" + +"@wordpress/private-apis@^1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/private-apis/-/private-apis-1.10.0.tgz#90d69128566a0a1d0b41e510098b4ed99892380a" + integrity sha512-gH6ZHmkc01MC431nMyjxFmU/77jVliOwjuv6SffQUgHMJyM75LiKC8CU8LEeLWbn3obG87m/n7Quj5p2MjtaeA== + dependencies: + "@babel/runtime" "7.25.7" + +"@wordpress/redux-routine@^5.10.0": + version "5.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/redux-routine/-/redux-routine-5.10.0.tgz#08ba44240040eec18e2c2b64948a488d9cbad581" + integrity sha512-oDqZDjz8H/bt02IEoIZCwsUsL17UOEnMg/heV0PoJxo3k5MTrvqJqzgBLoSC0PFzx/pwOo4TwvwCL+kjjm5gCQ== + dependencies: + "@babel/runtime" "7.25.7" + is-plain-object "^5.0.0" + is-promise "^4.0.0" + rungen "^0.3.2" + "@wordpress/scripts@^30.3.0": version "30.3.0" resolved "https://registry.yarnpkg.com/@wordpress/scripts/-/scripts-30.3.0.tgz#d3ab491de79b31a2a12490ff08ef6b1f7db18619" @@ -2677,6 +2882,22 @@ stylelint-config-recommended "^14.0.1" stylelint-config-recommended-scss "^14.1.0" +"@wordpress/undo-manager@^1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/undo-manager/-/undo-manager-1.10.0.tgz#beec1d89d44e01e3fa3fa01b28eafe897101c47d" + integrity sha512-WaLwZ+AlfXQm9PhLf6kwCBaD5DoKaIqelRsgAaqa4APjgMBlxktQ1dadime0CO9+e8R2kLwAE3rxQXhGjicRMw== + dependencies: + "@babel/runtime" "7.25.7" + "@wordpress/is-shallow-equal" "^5.10.0" + +"@wordpress/url@^4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@wordpress/url/-/url-4.10.0.tgz#6ac02f3de91bfcce06378ba4a8038e3ccd08551b" + integrity sha512-SKlXocsTlaSee2trXcB0N3jdIfEGMnPiqNxxvTjeeBmsP/47MMXu5lXYslYyYlQbluhAR5/RMf0o3WqZAF2uOg== + dependencies: + "@babel/runtime" "7.25.7" + remove-accents "^0.5.0" + "@wordpress/warning@^3.10.0": version "3.10.0" resolved "https://registry.yarnpkg.com/@wordpress/warning/-/warning-3.10.0.tgz#29276d268cb89f554df3bc1ae48eab27787c8337" @@ -3544,6 +3765,15 @@ clean-webpack-plugin@^3.0.0: "@types/webpack" "^4.4.31" del "^4.1.1" +clipboard@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.11.tgz#62180360b97dd668b6b3a84ec226975762a70be5" + integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + cliui@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" @@ -4002,6 +4232,11 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + cwd@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/cwd/-/cwd-0.10.0.tgz#172400694057c22a13b0cf16162c7e4b7a7fe567" @@ -4146,7 +4381,7 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.2.2, deepmerge@^4.3.1: +deepmerge@^4.2.2, deepmerge@^4.3.0, deepmerge@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== @@ -4208,6 +4443,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -4383,6 +4623,13 @@ encodeurl@~2.0.0: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== +encoding@^0.1.12: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -4426,6 +4673,11 @@ envinfo@^7.7.3: resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.14.0.tgz#26dac5db54418f2a4c1159153a0b2ae980838aae" integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== +equivalent-key-map@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/equivalent-key-map/-/equivalent-key-map-0.2.2.tgz#be4d57049bb8d46a81d6e256c1628465620c2a13" + integrity sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -5342,6 +5594,14 @@ get-uri@^6.0.1: debug "^4.3.4" fs-extra "^11.2.0" +gettext-parser@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/gettext-parser/-/gettext-parser-1.4.0.tgz#f8baf34a292f03d5e42f02df099d301f167a7ace" + integrity sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA== + dependencies: + encoding "^0.1.12" + safe-buffer "^5.1.1" + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -5467,6 +5727,13 @@ globjoin@^0.1.4: resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw== + dependencies: + delegate "^3.1.2" + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -5707,7 +5974,7 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6.3, iconv-lite@^0.6.3: +iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -6071,6 +6338,11 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== +is-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" + integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -7194,6 +7466,11 @@ memfs@^3.4.3: dependencies: fs-monkey "^1.0.4" +memize@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/memize/-/memize-2.1.0.tgz#6ddd4717887d94825748149ece00d04cf868ce0d" + integrity sha512-yywVJy8ctVlN5lNPxsep5urnZ6TTclwPEyigM9M3Bi8vseJBOfqNrGWN/r8NzuIt3PovM323W04blJfGQfQSVg== + meow@^13.2.0: version "13.2.0" resolved "https://registry.yarnpkg.com/meow/-/meow-13.2.0.tgz#6b7d63f913f984063b3cc261b6e8800c4cd3474f" @@ -7367,6 +7644,11 @@ mkdirp-classic@^0.5.2: resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== +mousetrap@^1.6.5: + version "1.6.5" + resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9" + integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA== + mrmime@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" @@ -8423,6 +8705,14 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" +react-dom@^18.3.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.2" + react-is@^16.13.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" @@ -8520,6 +8810,13 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" +redux@^4.1.2: + version "4.2.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" + integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== + dependencies: + "@babel/runtime" "^7.9.2" + reflect.getprototypeof@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859" @@ -8596,6 +8893,21 @@ regjsparser@^0.11.0: dependencies: jsesc "~3.0.2" +rememo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/rememo/-/rememo-4.0.2.tgz#8af1f09fd3bf5809ca0bfd0b803926c67ead8c1e" + integrity sha512-NVfSP9NstE3QPNs/TnegQY0vnJnstKQSpcrsI2kBTB3dB2PkdfKdTa+abbjMIDqpc63fE5LfjLgfMst0ULMFxQ== + +remove-accents@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.5.0.tgz#77991f37ba212afba162e375b627631315bed687" + integrity sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A== + +requestidlecallback@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/requestidlecallback/-/requestidlecallback-0.3.0.tgz#6fb74e0733f90df3faa4838f9f6a2a5f9b742ac5" + integrity sha512-TWHFkT7S9p7IxLC5A1hYmAYQx2Eb9w1skrXmQ+dS1URyvR8tenMLl4lHbqEOUnpEYxNKpkVMXUgknVpBZWXXfQ== + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -8735,6 +9047,11 @@ run-parallel@^1.1.4, run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +rungen@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/rungen/-/rungen-0.3.2.tgz#400c09ebe914e7b17e0b6ef3263400fc2abc7cb3" + integrity sha512-zWl10xu2D7zoR8zSC2U6bg5bYF6T/Wk7rxwp8IPaJH7f0Ge21G03kNHVgHR7tyVkSSfAOG0Rqf/Cl38JftSmtw== + rxjs@^7.8.1: version "7.8.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" @@ -8757,7 +9074,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -8801,6 +9118,13 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" @@ -8825,6 +9149,11 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== + selfsigned@^2.1.1: version "2.4.1" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" @@ -9190,7 +9519,7 @@ speedline-core@^1.4.3: image-ssim "^0.2.0" jpeg-js "^0.4.1" -sprintf-js@^1.1.3: +sprintf-js@^1.1.1, sprintf-js@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== @@ -9541,6 +9870,13 @@ table@^6.8.2: string-width "^4.2.3" strip-ansi "^6.0.1" +tannin@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tannin/-/tannin-1.2.0.tgz#1da6fe65280dca4c3d84efb075b077b1b94362a6" + integrity sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA== + dependencies: + "@tannin/plural-forms" "^1.1.0" + tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" @@ -9630,6 +9966,11 @@ thunky@^1.0.2: resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -9958,6 +10299,11 @@ urlpattern-polyfill@10.0.0: resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz#f0a03a97bfb03cdf33553e5e79a2aadd22cac8ec" integrity sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg== +use-memo-one@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.3.tgz#2fd2e43a2169eabc7496960ace8c79efef975e99" + integrity sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ== + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" From d4aa87dff466727920e1e5e7aabc415659b291a3 Mon Sep 17 00:00:00 2001 From: Philipp Stracker Date: Tue, 22 Oct 2024 15:13:56 +0200 Subject: [PATCH 2/7] =?UTF-8?q?=F0=9F=8E=A8=20Fix=20format=20of=20existing?= =?UTF-8?q?=20PHP=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ppcp-settings/src/SettingsModule.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/ppcp-settings/src/SettingsModule.php b/modules/ppcp-settings/src/SettingsModule.php index 365f7404a..12fe5d4be 100644 --- a/modules/ppcp-settings/src/SettingsModule.php +++ b/modules/ppcp-settings/src/SettingsModule.php @@ -2,10 +2,11 @@ /** * The Settings module. * - * @package WooCommerce\PayPalCommerce\AxoBlock + * @package WooCommerce\PayPalCommerce\Settings */ -declare(strict_types=1); +declare( strict_types = 1 ); + namespace WooCommerce\PayPalCommerce\Settings; use WooCommerce\PayPalCommerce\Vendor\Inpsyde\Modularity\Module\ExecutableModule; @@ -23,14 +24,14 @@ class SettingsModule implements ServiceModule, ExecutableModule { /** * {@inheritDoc} */ - public function services(): array { + public function services() : array { return require __DIR__ . '/../services.php'; } /** * {@inheritDoc} */ - public function run( ContainerInterface $container ): bool { + public function run( ContainerInterface $container ) : bool { add_action( 'admin_enqueue_scripts', /** @@ -38,7 +39,7 @@ class SettingsModule implements ServiceModule, ExecutableModule { * * @psalm-suppress MissingClosureParamType */ - static function( $hook_suffix ) use ( $container ) { + static function ( $hook_suffix ) use ( $container ) { if ( 'woocommerce_page_wc-settings' !== $hook_suffix ) { return; } @@ -82,7 +83,7 @@ class SettingsModule implements ServiceModule, ExecutableModule { add_action( 'woocommerce_paypal_payments_gateway_admin_options_wrapper', - static function(): void { + static function () : void { global $hide_save_button; $hide_save_button = true; From b2e662e246a48705282383203ba09a5707ab3e7c Mon Sep 17 00:00:00 2001 From: Philipp Stracker Date: Tue, 22 Oct 2024 15:14:46 +0200 Subject: [PATCH 3/7] =?UTF-8?q?=E2=9C=A8=20Add=20REST=20endpoint=20for=20t?= =?UTF-8?q?he=20Onboarding=20store?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ppcp-settings/services.php | 6 +- .../src/Endpoint/OnboardingRestEndpoint.php | 60 +++++++++++++++++++ .../src/Endpoint/RestEndpoint.php | 36 +++++++++++ modules/ppcp-settings/src/SettingsModule.php | 8 +++ 4 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 modules/ppcp-settings/src/Endpoint/OnboardingRestEndpoint.php create mode 100644 modules/ppcp-settings/src/Endpoint/RestEndpoint.php diff --git a/modules/ppcp-settings/services.php b/modules/ppcp-settings/services.php index 30c3951dc..0a900fbd1 100644 --- a/modules/ppcp-settings/services.php +++ b/modules/ppcp-settings/services.php @@ -10,9 +10,10 @@ declare( strict_types = 1 ); namespace WooCommerce\PayPalCommerce\Settings; use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface; +use WooCommerce\PayPalCommerce\Settings\Endpoint\OnboardingRestEndpoint; return array( - 'settings.url' => static function ( ContainerInterface $container ) : string { + 'settings.url' => static function ( ContainerInterface $container ) : string { /** * The path cannot be false. * @@ -23,4 +24,7 @@ return array( dirname( realpath( __FILE__ ), 3 ) . '/woocommerce-paypal-payments.php' ); }, + 'settings.rest.onboarding' => static function ( ContainerInterface $container ) : OnboardingRestEndpoint { + return new OnboardingRestEndpoint(); + }, ); diff --git a/modules/ppcp-settings/src/Endpoint/OnboardingRestEndpoint.php b/modules/ppcp-settings/src/Endpoint/OnboardingRestEndpoint.php new file mode 100644 index 000000000..b81c1b28f --- /dev/null +++ b/modules/ppcp-settings/src/Endpoint/OnboardingRestEndpoint.php @@ -0,0 +1,60 @@ +namespace, + '/' . $this->rest_base, + array( + array( + 'methods' => WP_REST_Server::READABLE, + 'callback' => array( $this, 'get_details' ), + 'permission_callback' => array( $this, 'check_permission' ), + ), + ) + ); + } + + /** + * Returns an object with all details of the current onboarding wizard + * progress. + * + * @return WP_REST_Response The current state of the onboarding wizard. + */ + public function get_details() : WP_REST_Response { + // TODO: Retrieve the onboarding details from the database. + $details = array( + 'step' => 1, + 'completed' => false, + ); + + return rest_ensure_response( $details ); + } +} diff --git a/modules/ppcp-settings/src/Endpoint/RestEndpoint.php b/modules/ppcp-settings/src/Endpoint/RestEndpoint.php new file mode 100644 index 000000000..ea7855130 --- /dev/null +++ b/modules/ppcp-settings/src/Endpoint/RestEndpoint.php @@ -0,0 +1,36 @@ +get( 'settings.rest.onboarding' ); + $onboarding_endpoint->register_routes(); + } + ); + return true; } } From fc6d05ac37477c26425cb93889616c0e20f05718 Mon Sep 17 00:00:00 2001 From: Philipp Stracker Date: Tue, 22 Oct 2024 15:15:55 +0200 Subject: [PATCH 4/7] =?UTF-8?q?=E2=9C=A8=20Create=20new=20Redux=20store=20?= =?UTF-8?q?for=20onboarding=20details?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/js/data/constants.js | 2 + .../ppcp-settings/resources/js/data/index.js | 6 ++ .../js/data/onboarding/action-types.js | 4 ++ .../resources/js/data/onboarding/actions.js | 64 +++++++++++++++++++ .../resources/js/data/onboarding/index.js | 6 ++ .../resources/js/data/onboarding/reducer.js | 31 +++++++++ .../resources/js/data/onboarding/resolvers.js | 24 +++++++ .../resources/js/data/onboarding/selectors.js | 17 +++++ .../ppcp-settings/resources/js/data/store.js | 30 +++++++++ 9 files changed, 184 insertions(+) create mode 100644 modules/ppcp-settings/resources/js/data/constants.js create mode 100644 modules/ppcp-settings/resources/js/data/index.js create mode 100644 modules/ppcp-settings/resources/js/data/onboarding/action-types.js create mode 100644 modules/ppcp-settings/resources/js/data/onboarding/actions.js create mode 100644 modules/ppcp-settings/resources/js/data/onboarding/index.js create mode 100644 modules/ppcp-settings/resources/js/data/onboarding/reducer.js create mode 100644 modules/ppcp-settings/resources/js/data/onboarding/resolvers.js create mode 100644 modules/ppcp-settings/resources/js/data/onboarding/selectors.js create mode 100644 modules/ppcp-settings/resources/js/data/store.js diff --git a/modules/ppcp-settings/resources/js/data/constants.js b/modules/ppcp-settings/resources/js/data/constants.js new file mode 100644 index 000000000..61ebf948e --- /dev/null +++ b/modules/ppcp-settings/resources/js/data/constants.js @@ -0,0 +1,2 @@ +export const NAMESPACE = '/wc/v3/wc_paypal'; +export const STORE_NAME = 'wc/paypal'; diff --git a/modules/ppcp-settings/resources/js/data/index.js b/modules/ppcp-settings/resources/js/data/index.js new file mode 100644 index 000000000..d305bc479 --- /dev/null +++ b/modules/ppcp-settings/resources/js/data/index.js @@ -0,0 +1,6 @@ +import { STORE_NAME } from './constants'; +import { initStore } from './store'; + +initStore(); + +export const WC_PAYPAL_STORE_NAME = STORE_NAME; diff --git a/modules/ppcp-settings/resources/js/data/onboarding/action-types.js b/modules/ppcp-settings/resources/js/data/onboarding/action-types.js new file mode 100644 index 000000000..bc215b491 --- /dev/null +++ b/modules/ppcp-settings/resources/js/data/onboarding/action-types.js @@ -0,0 +1,4 @@ +export default { + SET_ONBOARDING_DETAILS: 'SET_ONBOARDING_DETAILS', + SET_IS_SAVING_ONBOARDING_DETAILS: 'SET_IS_SAVING_ONBOARDING_DETAILS', +}; diff --git a/modules/ppcp-settings/resources/js/data/onboarding/actions.js b/modules/ppcp-settings/resources/js/data/onboarding/actions.js new file mode 100644 index 000000000..060e39811 --- /dev/null +++ b/modules/ppcp-settings/resources/js/data/onboarding/actions.js @@ -0,0 +1,64 @@ +import { dispatch, select } from '@wordpress/data'; +import { apiFetch } from '@wordpress/data-controls'; +import ACTION_TYPES from './action-types'; +import { NAMESPACE, STORE_NAME } from '../constants'; + +/** + * Persistent. Set the full onboarding details, usually during app initialization. + * + * @param {Object} payload + * @return {{payload, type: string}} The action. + */ +export const updateOnboardingDetails = ( payload ) => { + return { + type: ACTION_TYPES.SET_ONBOARDING_DETAILS, + payload, + }; +}; + +/** + * Non-persistent. Changes the "saving" flag. + * + * @param {boolean} isSaving + * @return {{type: string, isSaving}} The action. + */ +export function updateIsSavingOnboardingDetails( isSaving ) { + return { + type: ACTION_TYPES.SET_IS_SAVING_ONBOARDING_DETAILS, + isSaving, + }; +} + +/** + * Saves the persistent details to the WP database. + * + * @return {Generator} A generator function that handles the saving process. + */ +export function* saveOnboardingDetails() { + let error = null; + + try { + const settings = select( STORE_NAME ).getOnboardingDetails(); + + yield updateIsSavingOnboardingDetails( true ); + + yield apiFetch( { + path: `${ NAMESPACE }/onboarding`, + method: 'POST', + data: settings, + } ); + + yield dispatch( 'core/notices' ).createSuccessNotice( + __( 'Progress saved.', 'woocommerce-paypal-payments' ) + ); + } catch ( e ) { + error = e; + yield dispatch( 'core/notices' ).createErrorNotice( + __( 'Error saving progress.', 'woocommerce-paypal-payments' ) + ); + } finally { + yield updateIsSavingOnboardingDetails( false ); + } + + return error === null; +} diff --git a/modules/ppcp-settings/resources/js/data/onboarding/index.js b/modules/ppcp-settings/resources/js/data/onboarding/index.js new file mode 100644 index 000000000..0b07abf46 --- /dev/null +++ b/modules/ppcp-settings/resources/js/data/onboarding/index.js @@ -0,0 +1,6 @@ +import reducer from './reducer'; +import * as selectors from './selectors'; +import * as actions from './actions'; +import * as resolvers from './resolvers'; + +export { reducer, selectors, actions, resolvers }; diff --git a/modules/ppcp-settings/resources/js/data/onboarding/reducer.js b/modules/ppcp-settings/resources/js/data/onboarding/reducer.js new file mode 100644 index 000000000..08002f192 --- /dev/null +++ b/modules/ppcp-settings/resources/js/data/onboarding/reducer.js @@ -0,0 +1,31 @@ +import ACTION_TYPES from './action-types'; + +const defaultState = { + isSaving: false, + data: { + step: 0, + }, +}; + +export const onboardingReducer = ( + state = defaultState, + { type, ...action } +) => { + switch ( type ) { + case ACTION_TYPES.SET_ONBOARDING_DETAILS: + return { + ...state, + data: action.payload, + }; + + case ACTION_TYPES.SET_IS_SAVING_ONBOARDING_DETAILS: + return { + ...state, + isSaving: action.isSaving, + }; + } + + return state; +}; + +export default onboardingReducer; diff --git a/modules/ppcp-settings/resources/js/data/onboarding/resolvers.js b/modules/ppcp-settings/resources/js/data/onboarding/resolvers.js new file mode 100644 index 000000000..497d855a3 --- /dev/null +++ b/modules/ppcp-settings/resources/js/data/onboarding/resolvers.js @@ -0,0 +1,24 @@ +import { dispatch } from '@wordpress/data'; +import { __ } from '@wordpress/i18n'; +import { apiFetch } from '@wordpress/data-controls'; +import { NAMESPACE } from '../constants'; +import { updateOnboardingDetails } from './actions'; + +/** + * Retrieve settings from the site's REST API. + */ +export function* getOnboardingDetails() { + const path = `${ NAMESPACE }/onboarding`; + + try { + const result = yield apiFetch( { path } ); + yield updateOnboardingDetails( result ); + } catch ( e ) { + yield dispatch( 'core/notices' ).createErrorNotice( + __( + 'Error retrieving onboarding details.', + 'woocommerce-paypal-payments' + ) + ); + } +} diff --git a/modules/ppcp-settings/resources/js/data/onboarding/selectors.js b/modules/ppcp-settings/resources/js/data/onboarding/selectors.js new file mode 100644 index 000000000..522b9a93e --- /dev/null +++ b/modules/ppcp-settings/resources/js/data/onboarding/selectors.js @@ -0,0 +1,17 @@ +const EMPTY_OBJ = {}; + +const getOnboardingState = ( state ) => { + if ( ! state ) { + return EMPTY_OBJ; + } + + return state.onboarding || EMPTY_OBJ; +}; + +export const getOnboardingDetails = ( state ) => { + return getOnboardingState( state ).data || EMPTY_OBJ; +}; + +export const getOnboardingStep = ( state ) => { + return getOnboardingDetails( state ).step || 0; +}; diff --git a/modules/ppcp-settings/resources/js/data/store.js b/modules/ppcp-settings/resources/js/data/store.js new file mode 100644 index 000000000..f5a1a4b13 --- /dev/null +++ b/modules/ppcp-settings/resources/js/data/store.js @@ -0,0 +1,30 @@ +import { createReduxStore, register, combineReducers } from '@wordpress/data'; +import { controls } from '@wordpress/data-controls'; +import { STORE_NAME } from './constants'; +import * as onboarding from './onboarding'; + +const actions = {}; +const selectors = {}; +const resolvers = {}; + +[ onboarding ].forEach( ( item ) => { + Object.assign( actions, { ...item.actions } ); + Object.assign( selectors, { ...item.selectors } ); + Object.assign( resolvers, { ...item.resolvers } ); +} ); + +const reducer = combineReducers( { + onboarding: onboarding.reducer, +} ); + +export const initStore = () => { + const store = createReduxStore( STORE_NAME, { + reducer, + controls, + actions, + selectors, + resolvers, + } ); + + register( store ); +}; From 8520406794f0dd34c711293051be4bd3479ae80d Mon Sep 17 00:00:00 2001 From: Philipp Stracker Date: Tue, 22 Oct 2024 15:16:23 +0200 Subject: [PATCH 5/7] =?UTF-8?q?=F0=9F=9A=A7=20Test=20integration=20of=20th?= =?UTF-8?q?e=20Redux=20store=20in=20the=20app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ppcp-settings/resources/js/App.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/ppcp-settings/resources/js/App.js b/modules/ppcp-settings/resources/js/App.js index c88ad1546..5a555a0a9 100644 --- a/modules/ppcp-settings/resources/js/App.js +++ b/modules/ppcp-settings/resources/js/App.js @@ -1,3 +1,8 @@ +import * as Store from './data'; + export function App() { - return
App
; + // We need to "use" the Store variable, to prevent webpack from tree-shaking it. + console.log( 'Store ready:', Store ); + + return
App with Store
; } From e884547582e860a254b10e1c7286f0a90c07eb29 Mon Sep 17 00:00:00 2001 From: Philipp Stracker Date: Tue, 22 Oct 2024 18:53:24 +0200 Subject: [PATCH 6/7] =?UTF-8?q?=E2=9C=A8=20Persist=20onboarding=20data=20i?= =?UTF-8?q?n=20the=20DB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ppcp-settings/services.php | 6 +- .../src/Data/OnboardingProfile.php | 42 ++++++++++++ .../src/Endpoint/OnboardingRestEndpoint.php | 64 +++++++++++++++++-- 3 files changed, 106 insertions(+), 6 deletions(-) create mode 100644 modules/ppcp-settings/src/Data/OnboardingProfile.php diff --git a/modules/ppcp-settings/services.php b/modules/ppcp-settings/services.php index 0a900fbd1..c8bb64144 100644 --- a/modules/ppcp-settings/services.php +++ b/modules/ppcp-settings/services.php @@ -11,6 +11,7 @@ namespace WooCommerce\PayPalCommerce\Settings; use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface; use WooCommerce\PayPalCommerce\Settings\Endpoint\OnboardingRestEndpoint; +use WooCommerce\PayPalCommerce\Settings\Data\OnboardingProfile; return array( 'settings.url' => static function ( ContainerInterface $container ) : string { @@ -24,7 +25,10 @@ return array( dirname( realpath( __FILE__ ), 3 ) . '/woocommerce-paypal-payments.php' ); }, + 'settings.data.onboarding' => static function ( ContainerInterface $container ) : OnboardingProfile { + return new OnboardingProfile(); + }, 'settings.rest.onboarding' => static function ( ContainerInterface $container ) : OnboardingRestEndpoint { - return new OnboardingRestEndpoint(); + return new OnboardingRestEndpoint( $container->get( 'settings.data.onboarding' ) ); }, ); diff --git a/modules/ppcp-settings/src/Data/OnboardingProfile.php b/modules/ppcp-settings/src/Data/OnboardingProfile.php new file mode 100644 index 000000000..d62b3c49e --- /dev/null +++ b/modules/ppcp-settings/src/Data/OnboardingProfile.php @@ -0,0 +1,42 @@ +profile = $profile; + } + /** * Configure REST API routes. */ @@ -40,6 +58,18 @@ class OnboardingRestEndpoint extends RestEndpoint { ), ) ); + + register_rest_route( + $this->namespace, + '/' . $this->rest_base, + array( + array( + 'methods' => WP_REST_Server::EDITABLE, + 'callback' => array( $this, 'update_details' ), + 'permission_callback' => array( $this, 'check_permission' ), + ), + ) + ); } /** @@ -49,11 +79,35 @@ class OnboardingRestEndpoint extends RestEndpoint { * @return WP_REST_Response The current state of the onboarding wizard. */ public function get_details() : WP_REST_Response { - // TODO: Retrieve the onboarding details from the database. - $details = array( - 'step' => 1, - 'completed' => false, - ); + $details = $this->profile->get_data(); + + return rest_ensure_response( $details ); + } + + + /** + * Receives an object with onboarding details and persists it in the DB. + * + * @param WP_REST_Request $request Full data about the request. + * + * @return WP_REST_Response The current state of the onboarding wizard. + */ + public function update_details( WP_REST_Request $request ) : WP_REST_Response { + $details = $this->profile->get_data(); + + $get_param = fn( $key ) => wc_clean( wp_unslash( $request->get_param( $key ) ) ); + + $raw_step = $get_param( 'step' ); + $raw_completed = $get_param( 'completed' ); + + if ( is_numeric( $raw_step ) ) { + $details['step'] = intval( $raw_step ); + } + if ( null !== $raw_completed ) { + $details['completed'] = (bool) $raw_completed; + } + + $this->profile->save_data( $details ); return rest_ensure_response( $details ); } From c61c4a7bc1f261b57cda49c1fc2cded99b3a41ec Mon Sep 17 00:00:00 2001 From: Philipp Stracker Date: Tue, 22 Oct 2024 18:56:37 +0200 Subject: [PATCH 7/7] =?UTF-8?q?=E2=9C=A8=20Finish=20initial=20Redux=20stor?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ppcp-settings/resources/js/App.js | 40 +++++++++++++++++-- .../ppcp-settings/resources/js/data/index.js | 1 + .../js/data/onboarding/action-types.js | 1 + .../resources/js/data/onboarding/actions.js | 33 ++++++++++----- .../resources/js/data/onboarding/hooks.js | 23 +++++++++++ .../resources/js/data/onboarding/reducer.js | 11 +++++ .../resources/js/data/onboarding/resolvers.js | 2 +- .../resources/js/data/onboarding/selectors.js | 10 +++-- 8 files changed, 104 insertions(+), 17 deletions(-) create mode 100644 modules/ppcp-settings/resources/js/data/onboarding/hooks.js diff --git a/modules/ppcp-settings/resources/js/App.js b/modules/ppcp-settings/resources/js/App.js index 5a555a0a9..a89ef4031 100644 --- a/modules/ppcp-settings/resources/js/App.js +++ b/modules/ppcp-settings/resources/js/App.js @@ -1,8 +1,40 @@ import * as Store from './data'; -export function App() { - // We need to "use" the Store variable, to prevent webpack from tree-shaking it. - console.log( 'Store ready:', Store ); +const StoreTest = () => { + const { isSaving, onboardingStep, setOnboardingStep } = + Store.useOnboardingDetails(); - return
App with Store
; + return ( +
+
+
Onboarding Step: { onboardingStep }
+
{ isSaving ? 'Saving...' : 'Not Saving' }
+ +
+ + +
+
+ ); +}; + +export function App() { + return ( +
+ App + +
+ ); } diff --git a/modules/ppcp-settings/resources/js/data/index.js b/modules/ppcp-settings/resources/js/data/index.js index d305bc479..1c95c4261 100644 --- a/modules/ppcp-settings/resources/js/data/index.js +++ b/modules/ppcp-settings/resources/js/data/index.js @@ -4,3 +4,4 @@ import { initStore } from './store'; initStore(); export const WC_PAYPAL_STORE_NAME = STORE_NAME; +export * from './onboarding/hooks'; diff --git a/modules/ppcp-settings/resources/js/data/onboarding/action-types.js b/modules/ppcp-settings/resources/js/data/onboarding/action-types.js index bc215b491..35afae431 100644 --- a/modules/ppcp-settings/resources/js/data/onboarding/action-types.js +++ b/modules/ppcp-settings/resources/js/data/onboarding/action-types.js @@ -1,4 +1,5 @@ export default { SET_ONBOARDING_DETAILS: 'SET_ONBOARDING_DETAILS', SET_IS_SAVING_ONBOARDING_DETAILS: 'SET_IS_SAVING_ONBOARDING_DETAILS', + SET_ONBOARDING_STEP: 'SET_ONBOARDING_STEP', }; diff --git a/modules/ppcp-settings/resources/js/data/onboarding/actions.js b/modules/ppcp-settings/resources/js/data/onboarding/actions.js index 060e39811..4e5d6135d 100644 --- a/modules/ppcp-settings/resources/js/data/onboarding/actions.js +++ b/modules/ppcp-settings/resources/js/data/onboarding/actions.js @@ -1,5 +1,6 @@ import { dispatch, select } from '@wordpress/data'; import { apiFetch } from '@wordpress/data-controls'; +import { __ } from '@wordpress/i18n'; import ACTION_TYPES from './action-types'; import { NAMESPACE, STORE_NAME } from '../constants'; @@ -16,36 +17,50 @@ export const updateOnboardingDetails = ( payload ) => { }; }; +/** + * Persistent. Sets the onboarding wizard to a new step. + * + * @param {number} step + * @return {{type: string, step}} An action. + */ +export const setOnboardingStep = ( step ) => { + return { + type: ACTION_TYPES.SET_ONBOARDING_STEP, + step, + }; +}; + /** * Non-persistent. Changes the "saving" flag. * * @param {boolean} isSaving * @return {{type: string, isSaving}} The action. */ -export function updateIsSavingOnboardingDetails( isSaving ) { +export const updateIsSaving = ( isSaving ) => { return { type: ACTION_TYPES.SET_IS_SAVING_ONBOARDING_DETAILS, isSaving, }; -} +}; /** * Saves the persistent details to the WP database. * * @return {Generator} A generator function that handles the saving process. */ -export function* saveOnboardingDetails() { +export function* persist() { let error = null; try { - const settings = select( STORE_NAME ).getOnboardingDetails(); + const path = `${ NAMESPACE }/onboarding`; + const data = select( STORE_NAME ).getOnboardingData(); - yield updateIsSavingOnboardingDetails( true ); + yield updateIsSaving( true ); yield apiFetch( { - path: `${ NAMESPACE }/onboarding`, - method: 'POST', - data: settings, + path, + method: 'post', + data, } ); yield dispatch( 'core/notices' ).createSuccessNotice( @@ -57,7 +72,7 @@ export function* saveOnboardingDetails() { __( 'Error saving progress.', 'woocommerce-paypal-payments' ) ); } finally { - yield updateIsSavingOnboardingDetails( false ); + yield updateIsSaving( false ); } return error === null; diff --git a/modules/ppcp-settings/resources/js/data/onboarding/hooks.js b/modules/ppcp-settings/resources/js/data/onboarding/hooks.js new file mode 100644 index 000000000..35f0991b7 --- /dev/null +++ b/modules/ppcp-settings/resources/js/data/onboarding/hooks.js @@ -0,0 +1,23 @@ +import { useSelect, useDispatch } from '@wordpress/data'; +import { STORE_NAME } from '../constants'; + +export const useOnboardingDetails = () => { + const { setOnboardingStep, persist } = useDispatch( STORE_NAME ); + + const onboardingStep = useSelect( ( select ) => { + return select( STORE_NAME ).getOnboardingStep(); + }, [] ); + + const isSaving = useSelect( ( select ) => { + return select( STORE_NAME ).isSaving(); + }, [] ); + + return { + onboardingStep, + isSaving, + setOnboardingStep: async ( step ) => { + setOnboardingStep( step ); + await persist(); + }, + }; +}; diff --git a/modules/ppcp-settings/resources/js/data/onboarding/reducer.js b/modules/ppcp-settings/resources/js/data/onboarding/reducer.js index 08002f192..d26138c23 100644 --- a/modules/ppcp-settings/resources/js/data/onboarding/reducer.js +++ b/modules/ppcp-settings/resources/js/data/onboarding/reducer.js @@ -23,6 +23,17 @@ export const onboardingReducer = ( ...state, isSaving: action.isSaving, }; + + case ACTION_TYPES.SET_ONBOARDING_STEP: + return { + ...state, + data: { + ...( state.data || {} ), + step: action.step, + }, + }; + + default: } return state; diff --git a/modules/ppcp-settings/resources/js/data/onboarding/resolvers.js b/modules/ppcp-settings/resources/js/data/onboarding/resolvers.js index 497d855a3..f57c515fe 100644 --- a/modules/ppcp-settings/resources/js/data/onboarding/resolvers.js +++ b/modules/ppcp-settings/resources/js/data/onboarding/resolvers.js @@ -7,7 +7,7 @@ import { updateOnboardingDetails } from './actions'; /** * Retrieve settings from the site's REST API. */ -export function* getOnboardingDetails() { +export function* getOnboardingData() { const path = `${ NAMESPACE }/onboarding`; try { diff --git a/modules/ppcp-settings/resources/js/data/onboarding/selectors.js b/modules/ppcp-settings/resources/js/data/onboarding/selectors.js index 522b9a93e..85be7929e 100644 --- a/modules/ppcp-settings/resources/js/data/onboarding/selectors.js +++ b/modules/ppcp-settings/resources/js/data/onboarding/selectors.js @@ -8,10 +8,14 @@ const getOnboardingState = ( state ) => { return state.onboarding || EMPTY_OBJ; }; -export const getOnboardingDetails = ( state ) => { +export const getOnboardingData = ( state ) => { return getOnboardingState( state ).data || EMPTY_OBJ; }; -export const getOnboardingStep = ( state ) => { - return getOnboardingDetails( state ).step || 0; +export const isSaving = ( state ) => { + return getOnboardingState( state ).isSaving || false; +}; + +export const getOnboardingStep = ( state ) => { + return getOnboardingData( state ).step || 0; };