diff --git a/.github/labeler.yml b/.github/labeler.yml index 13b2729..a231d62 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -8,3 +8,4 @@ "App: Taxes": "apps/taxes/**/*" "App: Emails & Messages": "apps/emails-and-messages/**/*" "App: CMS": "apps/cms/**/*" +"App: CRM": "apps/crm/**/*" diff --git a/apps/crm/.env.example b/apps/crm/.env.example new file mode 100644 index 0000000..c4ed890 --- /dev/null +++ b/apps/crm/.env.example @@ -0,0 +1,12 @@ +# The key used for metadata encryption. Required for production builds +SECRET_KEY= + +# APL Config. Production keys are required +APL= +REST_APL_ENDPOINT= +REST_APL_TOKEN= + +MAILCHIMP_CLIENT_ID= +MAILCHIMP_CLIENT_SECRET= + +APP_DEBUG=info \ No newline at end of file diff --git a/apps/crm/.eslintrc b/apps/crm/.eslintrc new file mode 100644 index 0000000..5470783 --- /dev/null +++ b/apps/crm/.eslintrc @@ -0,0 +1,4 @@ +{ + "root": true, + "extends": ["saleor"] +} diff --git a/apps/crm/.graphqlrc.yml b/apps/crm/.graphqlrc.yml new file mode 100644 index 0000000..ee7c7af --- /dev/null +++ b/apps/crm/.graphqlrc.yml @@ -0,0 +1,20 @@ +schema: graphql/schema.graphql +documents: [graphql/**/*.graphql, src/**/*.ts, src/**/*.tsx] +extensions: + codegen: + overwrite: true + generates: + generated/graphql.ts: + config: + dedupeFragments: true + plugins: + - typescript + - typescript-operations + - urql-introspection + - typescript-urql: + documentVariablePrefix: "Untyped" + fragmentVariablePrefix: "Untyped" + - typed-document-node + generated/schema.graphql: + plugins: + - schema-ast diff --git a/apps/crm/README.md b/apps/crm/README.md new file mode 100644 index 0000000..c47f429 --- /dev/null +++ b/apps/crm/README.md @@ -0,0 +1,7 @@ + + +
mailchimp_tags
Private Metadata key with tags as a stringified array.
+ mailchimp_tags: ["Tag1", "Tag2"]
+ = NextPage
& {
+ overwriteLayout?: (page: ReactElement) => ReactElement;
+};
+
+type AppPropsWithLayout = AppProps & {
+ Component: NextPageWithLayoutOverwrite;
+};
+
+function NextApp({ Component, pageProps: { session, ...pageProps } }: AppPropsWithLayout) {
+ if (Component.overwriteLayout) {
+ return Component.overwriteLayout( Connect Saleor clients database with your favourite CRM platform. Loading