diff --git a/sites/org/components/gdpr/details.mjs b/sites/org/components/gdpr/details.mjs
index 12491107612..c1330a2e82f 100644
--- a/sites/org/components/gdpr/details.mjs
+++ b/sites/org/components/gdpr/details.mjs
@@ -32,18 +32,15 @@ export const GdprMeasurementsDetails = () => {
return (
-
{t('peopleWhatQuestion')}
+
{t('setWhatQuestion')}
' +
- t('peopleWhatAnswerOptional') +
- '',
+ t('setWhatAnswer') + '
' + t('setWhatAnswerOptional') + '',
}}
/>
{t('whyQuestion')}
-
+
{t('timingQuestion')}
{t('shareQuestion')}
diff --git a/sites/org/components/gdpr/gdpr.en.yaml b/sites/org/components/gdpr/gdpr.en.yaml
index 22e51b630c8..d69da03df93 100644
--- a/sites/org/components/gdpr/gdpr.en.yaml
+++ b/sites/org/components/gdpr/gdpr.en.yaml
@@ -3,7 +3,7 @@ createLimitedAccount: Create account with limited consent
createAccount: Create account
compliant: "FreeSewing respects your privacy and your rights. We adhere to the toughest privacy and security law in the world: the General Data Protection Regulation (GDPR) of the European Union (EU)."
consent: Consent
-consentForPeopleData: Consent for people data
+consentForSetData: Consent for measurement data
consentForProfileData: Consent for profile data
consentGiven: Consent given
consentNotGiven: Consent not given
@@ -16,12 +16,12 @@ noConsentNoPatterns: Without this consent, you cannot create any made-to-measure
noIDoNot: 'No, I do not'
openDataInfo: This data is used to study and understand the human form in all its shapes, so we can get better sewing patterns, and better fitting garments. Even though this data is anonymized, you have the right to object to this.
openDataQuestion: Share anonymized measurements as open data
-peopleQuestion: Do you give your consent to process your people data?
-peopleWarning: Revoking this consent will lock you out of all your people data, as well as disable functionality that depends on it.
-peopleWhatAnswer: For each person their
measurements.
-peopleWhatAnswerOptional: 'Optional: A
picture and the
name that you give a person.'
-peopleWhatQuestion: What is people data?
-peopleWhyAnswer: 'To draft
made-to-measure sewing patterns, we need
body measurements.'
+setQuestion: Do you give your consent to process your measurements data?
+setWarning: Revoking this consent will lock you out of all your measurements data, as well as disable functionality that depends on it.
+setWhatAnswer: For each measurements set the
measurements.
+setWhatAnswerOptional: 'Optional: A
picture and the
name or
notes that you add to a measurements set.'
+setWhatQuestion: What is measurements data?
+setWhyAnswer: 'To draft
made-to-measure sewing patterns, we need
body measurements.'
privacyMatters: Privacy matters
privacyNotice: FreeSewing Privacy Notice
processing: Processing
diff --git a/sites/org/pages/account/sets/index.mjs b/sites/org/pages/account/sets/index.mjs
new file mode 100644
index 00000000000..8179be7d500
--- /dev/null
+++ b/sites/org/pages/account/sets/index.mjs
@@ -0,0 +1,54 @@
+// Hooks
+import { useApp } from 'site/hooks/useApp.mjs'
+import { useTranslation } from 'next-i18next'
+// Dependencies
+import dynamic from 'next/dynamic'
+import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
+// Components
+import { PageWrapper, ns as pageNs } from 'site/components/wrappers/page.mjs'
+import { ns as authNs } from 'site/components/wrappers/auth/index.mjs'
+import { ns as apikeysNs } from 'site/components/account/apikeys.mjs'
+
+// Translation namespaces used on this page
+const namespaces = [...new Set([...apikeysNs, ...authNs, ...pageNs])]
+
+/*
+ * Some things should never generated as SSR
+ * So for these, we run a dynamic import and disable SSR rendering
+ */
+const DynamicAuthWrapper = dynamic(
+ () => import('site/components/wrappers/auth/index.mjs').then((mod) => mod.AuthWrapper),
+ { ssr: false }
+)
+
+const DynamicApikeys = dynamic(
+ () => import('site/components/account/apikeys.mjs').then((mod) => mod.Apikeys),
+ { ssr: false }
+)
+
+const AccountPage = (props) => {
+ const app = useApp(props)
+ const { t } = useTranslation(namespaces)
+ const crumbs = [
+ [t('yourAccount'), '/account'],
+ [t('apikeys'), '/account/apikeys'],
+ ]
+
+ return (
+
+
+
+
+
+ )
+}
+
+export default AccountPage
+
+export async function getStaticProps({ locale }) {
+ return {
+ props: {
+ ...(await serverSideTranslations(locale, namespaces)),
+ },
+ }
+}