From 51880bcfc9cbb4644627b8ef676f7e4f45d8049b Mon Sep 17 00:00:00 2001 From: Kiwi Date: Wed, 13 Feb 2019 18:06:42 +0100 Subject: [PATCH] [CORL-129] Render Community Guidelines (#2191) * chore: Rename InnerProps to Props * feat: Render community guidelines * chore: refactor schema communityGuidelines* settings into it's own type * test: update snapshots --- .vscode/settings.json | 3 +- package-lock.json | 318 +++++++++++ package.json | 3 + src/core/build/paths.ts | 1 + src/core/build/postcss.config.js | 5 +- .../general/components/GuidelinesConfig.tsx | 4 +- .../containers/GuidelinesConfigContainer.tsx | 6 +- .../__snapshots__/general.spec.tsx.snap | 14 +- .../admin/test/configure/general.spec.tsx | 4 +- src/core/client/admin/test/fixtures.ts | 6 +- .../framework/components/CopyButton.tsx | 4 +- .../client/framework/components/Markdown.css | 41 ++ .../framework/components/Markdown.spec.tsx | 10 + .../client/framework/components/Markdown.tsx | 33 ++ .../__snapshots__/Markdown.spec.tsx.snap | 13 + src/core/client/framework/components/index.ts | 1 + .../components/loadables/MarkdownEditor.css | 43 +- .../client/stream/containers/AppContainer.tsx | 4 +- .../stream/containers/TabBarContainer.tsx | 6 +- .../stream/containers/UserBoxContainer.tsx | 6 +- .../client/stream/queries/TabBarQuery.tsx | 4 +- .../components/CommunityGuidelines.spec.tsx | 10 + .../components/CommunityGuidelines.tsx | 18 + .../PermalinkButton/PermalinkPopover.tsx | 4 +- .../tabs/comments/components/Stream.tsx | 7 +- .../CommunityGuidelines.spec.tsx.snap | 11 + .../__snapshots__/Stream.spec.tsx.snap | 56 +- .../comments/containers/CommentContainer.tsx | 8 +- .../containers/CommentsPaneContainer.tsx | 4 +- .../CommunityGuidelinesContainer.tsx | 39 ++ .../containers/EditCommentFormContainer.tsx | 8 +- .../containers/LocalReplyListContainer.tsx | 6 +- .../containers/PermalinkButtonContainer.tsx | 6 +- .../containers/PostCommentFormContainer.tsx | 6 +- .../containers/ReplyCommentFormContainer.tsx | 8 +- .../containers/ReplyListContainer.tsx | 10 +- .../comments/containers/StreamContainer.tsx | 7 +- .../permalink/queries/PermalinkViewQuery.tsx | 4 +- .../components/ReportCommentForm.tsx | 4 +- .../components/ReportPopover.tsx | 4 +- .../reportComment/components/ThankYou.tsx | 4 +- .../tabs/profile/queries/ProfileQuery.tsx | 4 +- .../renderCommunityGuidelines.spec.tsx.snap | 523 ++++++++++++++++++ .../__snapshots__/renderStream.spec.tsx.snap | 2 +- .../renderCommunityGuidelines.spec.tsx | 41 ++ src/core/client/stream/test/fixtures.ts | 4 + .../ui/components/AriaInfo/AriaInfo.tsx | 4 +- .../ui/components/BaseButton/BaseButton.tsx | 4 +- .../client/ui/components/Button/Button.tsx | 6 +- .../ui/components/Button/ButtonIcon.tsx | 6 +- src/core/client/ui/components/Flex/Flex.tsx | 4 +- .../ui/components/FormField/FormField.tsx | 4 +- .../HorizontalGutter/HorizontalGutter.tsx | 6 +- src/core/client/ui/components/Icon/Icon.tsx | 6 +- .../ui/components/MatchMedia/MatchMedia.tsx | 6 +- .../ui/components/Message/MessageIcon.tsx | 4 +- .../components/RelativeTime/RelativeTime.tsx | 4 +- .../ui/components/Typography/Typography.tsx | 6 +- src/core/client/ui/shared/typography.css | 42 +- src/core/client/ui/theme/mixins.css | 52 ++ .../server/graph/tenant/schema/schema.graphql | 47 +- src/core/server/models/settings.ts | 6 +- src/core/server/models/tenant.ts | 5 +- src/docs/workarounds.mdx | 10 +- 64 files changed, 1365 insertions(+), 184 deletions(-) create mode 100644 src/core/client/framework/components/Markdown.css create mode 100644 src/core/client/framework/components/Markdown.spec.tsx create mode 100644 src/core/client/framework/components/Markdown.tsx create mode 100644 src/core/client/framework/components/__snapshots__/Markdown.spec.tsx.snap create mode 100644 src/core/client/stream/tabs/comments/components/CommunityGuidelines.spec.tsx create mode 100644 src/core/client/stream/tabs/comments/components/CommunityGuidelines.tsx create mode 100644 src/core/client/stream/tabs/comments/components/__snapshots__/CommunityGuidelines.spec.tsx.snap create mode 100644 src/core/client/stream/tabs/comments/containers/CommunityGuidelinesContainer.tsx create mode 100644 src/core/client/stream/test/comments/__snapshots__/renderCommunityGuidelines.spec.tsx.snap create mode 100644 src/core/client/stream/test/comments/renderCommunityGuidelines.spec.tsx create mode 100644 src/core/client/ui/theme/mixins.css diff --git a/.vscode/settings.json b/.vscode/settings.json index 4dd5d1b72..0b2536f70 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -14,5 +14,6 @@ "tslint.exclude": "**/node_modules/**", "tslint.autoFixOnSave": true, "tslint.jsEnable": true, - "typescript.tsdk": "node_modules/typescript/lib" + "typescript.tsdk": "node_modules/typescript/lib", + "postcss.validate": false } diff --git a/package-lock.json b/package-lock.json index 3cb344b6f..58f41bac9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2387,6 +2387,12 @@ "integrity": "sha512-YiVw0M9q9CeynfRKhZYaX2/aCXlCIBpM4eARlPXdv+XVoGVb5iPFaZIlKiMUJ8eWKOhlqi8U6GvOAn8yhR4//Q==", "dev": true }, + "@types/marked": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.6.0.tgz", + "integrity": "sha512-TxwhgR9VsIfRDJ3WwFokG8Xu+ea0nYGDRHdI783WJ983uffatz0ytIeUEIBOwPvRy241KRSNVyywQltuTqDh0w==", + "dev": true + }, "@types/mime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.0.tgz", @@ -6404,6 +6410,12 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true + }, "camelcase-keys": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", @@ -20397,6 +20409,75 @@ } } }, + "postcss-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-2.0.0.tgz", + "integrity": "sha512-9kAApW9G5kN8FkQ0ZdvSmbgbHIRrKmXtde2ZWYbwrW51gfEWfGsLlUu57mTpioPrmQlQFOgEvaeGYp+poqlX0A==", + "dev": true, + "requires": { + "camelcase-css": "^2.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", + "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "postcss-lab-function": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", @@ -20905,6 +20986,107 @@ } } }, + "postcss-mixins": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-mixins/-/postcss-mixins-6.2.1.tgz", + "integrity": "sha512-XfItKgFHAPKa4mayLVwoASYzzRLyW64mEtsVZz7LT7ElrprVZx9D5ivqOi5oQCkUxyiLs9sjg4aiRxr+gK9xkQ==", + "dev": true, + "requires": { + "globby": "^8.0.1", + "postcss": "^7.0.6", + "postcss-js": "^2.0.0", + "postcss-simple-vars": "^5.0.1", + "sugarss": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "postcss": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", + "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "postcss-modules-extract-imports": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", @@ -21992,6 +22174,74 @@ } } }, + "postcss-simple-vars": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-5.0.1.tgz", + "integrity": "sha512-nlulz+X0i8CH2e9IbxFfMD9rG4fGx+O4hH7Pwj0bZalRx91gvli85DAymqBQ35X7VBUackGD2iNj7DgsCbwQug==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", + "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "postcss-svgo": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.1.tgz", @@ -25377,6 +25627,74 @@ "ws": "^5.2.0" } }, + "sugarss": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", + "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", + "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "superagent": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", diff --git a/package.json b/package.json index cb3589624..ac6cc461e 100644 --- a/package.json +++ b/package.json @@ -155,6 +155,7 @@ "@types/linkifyjs": "^2.1.0", "@types/lodash": "^4.14.118", "@types/luxon": "^0.5.3", + "@types/marked": "^0.6.0", "@types/mini-css-extract-plugin": "^0.2.0", "@types/mongodb": "^3.1.14", "@types/ms": "^0.7.30", @@ -240,6 +241,7 @@ "lint-staged": "^7.3.0", "loader-utils": "^1.1.0", "lodash-es": "^4.17.11", + "marked": "^0.6.0", "material-design-icons": "^3.0.1", "mini-css-extract-plugin": "^0.5.0", "npm-run-all": "^4.1.3", @@ -249,6 +251,7 @@ "postcss-font-magician": "^2.2.1", "postcss-import": "^11.1.0", "postcss-loader": "^3.0.0", + "postcss-mixins": "^6.2.1", "postcss-nested": "^4.1.1", "postcss-prepend-imports": "^1.0.1", "postcss-preset-env": "^6.5.0", diff --git a/src/core/build/paths.ts b/src/core/build/paths.ts index 4e1ba06d0..d99d93e92 100644 --- a/src/core/build/paths.ts +++ b/src/core/build/paths.ts @@ -21,6 +21,7 @@ export default { appLocales: resolveSrc("locales"), appThemeVariables: resolveSrc("core/client/ui/theme/variables.ts"), appThemeVariablesCSS: resolveSrc("core/client/ui/theme/variables.css"), + appThemeMixinsCSS: resolveSrc("core/client/ui/theme/mixins.css"), appStreamHTML: resolveSrc("core/client/stream/index.html"), appStreamLocalesTemplate: resolveSrc("core/client/stream/locales.ts"), diff --git a/src/core/build/postcss.config.js b/src/core/build/postcss.config.js index 543cc877f..6bbf0123b 100644 --- a/src/core/build/postcss.config.js +++ b/src/core/build/postcss.config.js @@ -13,6 +13,7 @@ const postcssVariables = require("postcss-css-variables"); const postcssPresetEnv = require("postcss-preset-env"); const postcssNested = require("postcss-nested"); const postcssImport = require("postcss-import"); +const postcssMixins = require("postcss-mixins"); const postcssPrependImports = require("postcss-prepend-imports"); const postcssAdvancedVariables = require("postcss-advanced-variables"); @@ -48,10 +49,12 @@ module.exports = { // This allows us to define dynamic css variables. postcssPrependImports({ path: "", - files: [paths.appThemeVariablesCSS], + files: [paths.appThemeVariablesCSS, paths.appThemeMixinsCSS], }), // Needed by above plugin. postcssImport(), + // Support mixins. + postcssMixins(), // Support nesting. postcssNested(), // Sass style variables to be used in media queries. diff --git a/src/core/client/admin/routes/configure/sections/general/components/GuidelinesConfig.tsx b/src/core/client/admin/routes/configure/sections/general/components/GuidelinesConfig.tsx index 314c9c65a..d76b4b758 100644 --- a/src/core/client/admin/routes/configure/sections/general/components/GuidelinesConfig.tsx +++ b/src/core/client/admin/routes/configure/sections/general/components/GuidelinesConfig.tsx @@ -33,7 +33,7 @@ const GuidelinesConfig: StatelessComponent = ({ disabled }) => ( Show Community Guidelines Summary - + @@ -56,7 +56,7 @@ const GuidelinesConfig: StatelessComponent = ({ disabled }) => ( - + {({ input, meta }) => ( <> }> diff --git a/src/core/client/admin/routes/configure/sections/general/containers/GuidelinesConfigContainer.tsx b/src/core/client/admin/routes/configure/sections/general/containers/GuidelinesConfigContainer.tsx index 21b9fadca..cc3401185 100644 --- a/src/core/client/admin/routes/configure/sections/general/containers/GuidelinesConfigContainer.tsx +++ b/src/core/client/admin/routes/configure/sections/general/containers/GuidelinesConfigContainer.tsx @@ -27,8 +27,10 @@ class GuidelinesConfigContainer extends React.Component { const enhanced = withFragmentContainer({ settings: graphql` fragment GuidelinesConfigContainer_settings on Settings { - communityGuidelinesEnable - communityGuidelines + communityGuidelines { + enabled + content + } } `, })(GuidelinesConfigContainer); diff --git a/src/core/client/admin/test/configure/__snapshots__/general.spec.tsx.snap b/src/core/client/admin/test/configure/__snapshots__/general.spec.tsx.snap index 206d4ef91..a5247bccf 100644 --- a/src/core/client/admin/test/configure/__snapshots__/general.spec.tsx.snap +++ b/src/core/client/admin/test/configure/__snapshots__/general.spec.tsx.snap @@ -131,8 +131,8 @@ exports[`renders configure general 1`] = ` checked={false} className="RadioButton-input" disabled={false} - id="communityGuidelinesEnable-true" - name="communityGuidelinesEnable" + id="communityGuidelines.enabled-true" + name="communityGuidelines.enabled" onBlur={[Function]} onChange={[Function]} onFocus={[Function]} @@ -141,7 +141,7 @@ exports[`renders configure general 1`] = ` /> @@ -153,8 +153,8 @@ exports[`renders configure general 1`] = ` checked={true} className="RadioButton-input" disabled={false} - id="communityGuidelinesEnable-fase" - name="communityGuidelinesEnable" + id="communityGuidelines.enabled-fase" + name="communityGuidelines.enabled" onBlur={[Function]} onChange={[Function]} onFocus={[Function]} @@ -163,7 +163,7 @@ exports[`renders configure general 1`] = ` /> @@ -201,7 +201,7 @@ Markdown can be found >