Inform App iframe about current and changed locale (#2304)

* Inform App iframe about current and changed locale

* Install production app-sdk@0.11.0
This commit is contained in:
Lukasz Ostrowski 2022-09-15 08:18:43 +02:00 committed by GitHub
parent 2d9f3edf67
commit a4804e2f3d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 68 additions and 8 deletions

61
package-lock.json generated
View file

@ -5243,15 +5243,16 @@
}
},
"@saleor/app-sdk": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/@saleor/app-sdk/-/app-sdk-0.9.1.tgz",
"integrity": "sha512-p+/qvl2tk0gowdLSK9szXLSVYNaIr1QQF0panqnuT+GYXOEtwysBvr/TUq0b1GLKZsxlmgjE46NNsqBIVJdnpQ==",
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@saleor/app-sdk/-/app-sdk-0.11.0.tgz",
"integrity": "sha512-nQe2Gb0z9iuLJg23AaXxNC6dxiCOafN3mNtS3DlChPv87pEoFU3ZRewRvqloL2rZpc2z0lfPaNNaDFNvkMLvHQ==",
"dev": true,
"requires": {
"debug": "^4.3.4",
"fast-glob": "^3.2.11",
"graphql": "^16.5.0",
"jose": "^4.8.3",
"graphql": "^16.6.0",
"jose": "^4.9.2",
"node-fetch": "^3.2.10",
"retes": "^0.32.0",
"uuid": "^8.3.2"
},
@ -5271,6 +5272,17 @@
"integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==",
"dev": true
},
"node-fetch": {
"version": "3.2.10",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz",
"integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==",
"dev": true,
"requires": {
"data-uri-to-buffer": "^4.0.0",
"fetch-blob": "^3.1.4",
"formdata-polyfill": "^4.0.10"
}
},
"uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
@ -12523,6 +12535,12 @@
"assert-plus": "^1.0.0"
}
},
"data-uri-to-buffer": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==",
"dev": true
},
"data-urls": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
@ -15406,6 +15424,16 @@
"pend": "~1.2.0"
}
},
"fetch-blob": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
"integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
"dev": true,
"requires": {
"node-domexception": "^1.0.0",
"web-streams-polyfill": "^3.0.3"
}
},
"figgy-pudding": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
@ -16089,6 +16117,15 @@
"integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=",
"dev": true
},
"formdata-polyfill": {
"version": "4.0.10",
"resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
"integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
"dev": true,
"requires": {
"fetch-blob": "^3.1.2"
}
},
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@ -22857,6 +22894,12 @@
"minimatch": "^3.0.2"
}
},
"node-domexception": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
"integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
"dev": true
},
"node-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
@ -27113,7 +27156,7 @@
"request-progress": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz",
"integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==",
"integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=",
"dev": true,
"requires": {
"throttleit": "^1.0.0"
@ -31280,6 +31323,12 @@
"defaults": "^1.0.3"
}
},
"web-streams-polyfill": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
"integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
"dev": true
},
"webidl-conversions": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",

View file

@ -110,7 +110,7 @@
"@pollyjs/core": "^5.0.0",
"@pollyjs/persister-fs": "^5.0.0",
"@release-it/bumper": "^2.0.0",
"@saleor/app-sdk": "^0.9.1",
"@saleor/app-sdk": "~0.11.0",
"@sentry/webpack-plugin": "^1.14.0",
"@storybook/addon-storyshots": "^5.2.8",
"@storybook/react": "^5.1.9",

View file

@ -1,4 +1,5 @@
import { getAppDeepPathFromDashboardUrl } from "@saleor/apps/urls";
import useLocale from "@saleor/hooks/useLocale";
import useShop from "@saleor/hooks/useShop";
import { useTheme } from "@saleor/macaw-ui";
import clsx from "clsx";
@ -38,6 +39,16 @@ export const AppFrame: React.FC<Props> = ({
const appOrigin = getOrigin(src);
const { postToExtension } = useAppActions(frameRef, appOrigin, appId);
const location = useLocation();
const { locale } = useLocale();
useEffect(() => {
postToExtension({
type: "localeChanged",
payload: {
locale,
},
});
}, [locale, postToExtension]);
useEffect(() => {
postToExtension({
@ -89,7 +100,7 @@ export const AppFrame: React.FC<Props> = ({
src={urlJoin(
src,
window.location.search,
`?domain=${shop.domain.host}&id=${appId}`,
`?domain=${shop.domain.host}&id=${appId}&locale=${locale}`,
)}
onError={onError}
onLoad={handleLoad}