From 95934b87a4895a69e44b407938f46c38c433048f Mon Sep 17 00:00:00 2001 From: okbel Date: Wed, 21 Mar 2018 15:43:40 -0300 Subject: [PATCH 01/12] Adding docs for plugins api --- docs/source/05-03-Plugins-API.md | 185 +++++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 docs/source/05-03-Plugins-API.md diff --git a/docs/source/05-03-Plugins-API.md b/docs/source/05-03-Plugins-API.md new file mode 100644 index 000000000..22d44c004 --- /dev/null +++ b/docs/source/05-03-Plugins-API.md @@ -0,0 +1,185 @@ +# Plugins API +This is a set of utilities that we expose to create or add functionality to the Plugins. Feel free to check all the utilities here at `talk/plugin-api`. + +## Actions +### Import +``` +import {notify} 'plugin-api/beta/actions'; +``` + +#### Admin +* `viewUserDetail` + +#### Auth +* `setAuthToken` +* `handleSuccessfulLogin` +* `logout` + +#### Notification +* `notify` + +#### Stream +* `setSort` +* `showSignInDialog`` + +## Components +### Import +``` +import {Slot} 'plugin-api/beta/components'; +``` + + +* `Slot` +You probably won’t need to use the `` component in your plugin. But there’s a chance you might want to add a Slot so another plugin gets injected in your plugin. + +```js +const slotPassthrough = { + clearHeightCache, + root, + asset, + comment, +}; + + +``` + +* `IfSlotIsEmpty` + +```js + +``` + +* `IfSlotIsNotEmpty` +* `ClickOutside` +* `CommentAuthorName` +* `CommentTimestamp` +* `CommentDetail` +* `CommentContent` +* `ConfigureCard` +* `StreamConfiguration` +* `Recaptcha` + +## HOCS - Higher Order Components +### Import +``` +import {withReaction} 'plugin-api/beta/hoc'; +``` + +### Hocs +*`withGraphQLExtension`* + +This HOC allows components to register GraphQLExtensions for the framework. IMPORTANT: The extensions are only picked up when the component is used in a slot. + +```js +import {withGraphQLExtension} 'plugin-api/beta/hoc'; + +// MyComponent.js +withGraphQLExtension({ + mutations: { + UpdateNotificationSettings: () => ({ + update: proxy => {...} + }) + }, + fragments: {...}, + query: {...}, +})(MyComponent); +``` + +And then update your `my-plugin/client/index.js` + +```js +export default { + mySlot: [MyComponent], +} +``` + +* `withReaction` +Provides you utilities to create components that interact with Reactions. + +* `withTags` +Provides you utilities to create components that interact with Tags. + +* `withSortOption` +* `withEmit` +* `excludeIf` +* `withFragments` +* `withMutation` +* `withForgotPassword` +* `withSignIn` +* `withSignUp` +* `withResendEmailConfirmation` +* `withSetUsername` +* `withEnumValues` +* `withVariables` +* `withFetchMore` +* `withSubscribeToMore` +* `withRefetch` +* `withIgnoreUser` +* `withBanUser` +* `withUnbanUser` +* `withStopIgnoringUser` +* `withSetCommentStatus` +* `compose` + +## Coral UI +### Import +``` +import {Button} 'plugin-api/beta/components/ui'; +``` + +### Components +* `Alert` +* `Dialog` +* `CoralLogo` +* `FabButton` +* `TabBar` +* `Tab` +* `TabCount` +* `TabContent` +* `TabPane` +* `Button` +* `Spinner` +* `Tooltip` +* `PopupMenu` +* `Checkbox` +* `Icon` +* `List` +* `Item` +* `Card` +* `TextField` +* `Success` +* `Paginate` +* `Wizard` +* `WizardNav` +* `SnackBar` +* `TextArea` +* `Drawer` +* `Label` +* `FlagLabel` +* `Dropdown` +* `Option` +* `BareButton` + +## Services +### Import +``` +import {t, timeago, can} 'plugin-api/beta/services'; +``` + +* `t` +To manage translations. + +* `timeago` +Handle time with [timeago](https://github.com/hustcc/timeago.js) + +* `can` +A permissions utility. From 24f9afd531d3fbb477cc7c0cc4bf83a0f390fcbc Mon Sep 17 00:00:00 2001 From: Kim Gardner Date: Wed, 21 Mar 2018 15:06:20 -0400 Subject: [PATCH 02/12] Update sidebar and add title info --- docs/_config.yml | 2 ++ docs/source/{05-03-Plugins-API.md => 04-07-plugins-api.md} | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) rename docs/source/{05-03-Plugins-API.md => 04-07-plugins-api.md} (98%) diff --git a/docs/_config.yml b/docs/_config.yml index f524fed0a..027e25921 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -138,6 +138,8 @@ sidebar: url: /plugin-recipes/ - title: Slots and Plugins url: /slots-and-plugins/ + - title: Plugins API + url: /plugins-api/ - title: Tutorials children: - title: Creating a Basic Plugin diff --git a/docs/source/05-03-Plugins-API.md b/docs/source/04-07-plugins-api.md similarity index 98% rename from docs/source/05-03-Plugins-API.md rename to docs/source/04-07-plugins-api.md index 22d44c004..aea655cb5 100644 --- a/docs/source/05-03-Plugins-API.md +++ b/docs/source/04-07-plugins-api.md @@ -1,4 +1,8 @@ -# Plugins API +--- +title: Plugins API +permalink: /plugins-api/ +--- + This is a set of utilities that we expose to create or add functionality to the Plugins. Feel free to check all the utilities here at `talk/plugin-api`. ## Actions From 74271853e2b5f9a7d09f6ed7fe110be6c31cb5f4 Mon Sep 17 00:00:00 2001 From: Kim Gardner Date: Wed, 21 Mar 2018 19:16:56 -0400 Subject: [PATCH 03/12] Update version to 4.3.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a807d3321..84b2873dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "talk", - "version": "4.2.2", + "version": "4.3.0", "description": "A better commenting experience from Mozilla, The New York Times, and the Washington Post. https://coralproject.net", "main": "app.js", "private": true, From 773c8438341bcaeee375ff90b76bc87659b934ef Mon Sep 17 00:00:00 2001 From: okbel Date: Thu, 22 Mar 2018 11:59:33 -0300 Subject: [PATCH 04/12] Click Outside --- docs/source/05-03-Plugins-API.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/docs/source/05-03-Plugins-API.md b/docs/source/05-03-Plugins-API.md index 22d44c004..4c90a0aa2 100644 --- a/docs/source/05-03-Plugins-API.md +++ b/docs/source/05-03-Plugins-API.md @@ -1,7 +1,10 @@ # Plugins API -This is a set of utilities that we expose to create or add functionality to the Plugins. Feel free to check all the utilities here at `talk/plugin-api`. +We created a set of utilities to make it easier to create and add functionality to plugins. + +Feel free to check all the utilities here: `talk/plugin-api`. ## Actions + ### Import ``` import {notify} 'plugin-api/beta/actions'; @@ -59,7 +62,26 @@ const slotPassthrough = { ``` * `IfSlotIsNotEmpty` + * `ClickOutside` +This utility handle click events outside the component. + +### Props +* `onClickOutside` : Takes handler function + +#### Import +```js +import { ClickOutside } from 'plugin-api/beta/client/components'; +``` + +#### Usage +```js + + // Your component + +``` + + * `CommentAuthorName` * `CommentTimestamp` * `CommentDetail` From 1fc750083742023224b0acfac85ba9f2a7223d31 Mon Sep 17 00:00:00 2001 From: okbel Date: Thu, 22 Mar 2018 12:36:46 -0300 Subject: [PATCH 05/12] More --- docs/source/05-03-Plugins-API.md | 162 ++++++++++++++++++++++++------- 1 file changed, 125 insertions(+), 37 deletions(-) diff --git a/docs/source/05-03-Plugins-API.md b/docs/source/05-03-Plugins-API.md index 4c90a0aa2..c15b040cd 100644 --- a/docs/source/05-03-Plugins-API.md +++ b/docs/source/05-03-Plugins-API.md @@ -1,15 +1,8 @@ # Plugins API We created a set of utilities to make it easier to create and add functionality to plugins. - Feel free to check all the utilities here: `talk/plugin-api`. ## Actions - -### Import -``` -import {notify} 'plugin-api/beta/actions'; -``` - #### Admin * `viewUserDetail` @@ -25,16 +18,46 @@ import {notify} 'plugin-api/beta/actions'; * `setSort` * `showSignInDialog`` +### Import +``` +import {notify} 'plugin-api/beta/actions'; +``` + +### Usage +```js +// Trigger a notification +notify('success', t('suspenduser.notify_suspend_until', username, timeago(until)) + +// mapDispatchToProps +const mapDispatchToProps = dispatch => ({ + ...bindActionCreators( + { + notify, + }, + dispatch + ), +}); + +``` + + ## Components +* `Slot` +You probably won’t need to use the `` component in your plugin. But there’s a chance you might want to add a Slot so another plugin gets injected in your plugin. + +### Props +* `fill ` : Name of the slot +* `defaultComponent` : The default component if no plugin component is provided to the Slot +* `size` : - How many components this Slot should show - Slot size or an Array of slot size +* `passthrough`: - The properties that you want to pass to the Slot, therefore to the plugins. +* `className` : - Slot’s class name + ### Import ``` import {Slot} 'plugin-api/beta/components'; ``` - -* `Slot` -You probably won’t need to use the `` component in your plugin. But there’s a chance you might want to add a Slot so another plugin gets injected in your plugin. - +### Usage ```js const slotPassthrough = { clearHeightCache, @@ -54,6 +77,12 @@ const slotPassthrough = { * `IfSlotIsEmpty` +### Import +``` +import {IfSlotIsEmpty} 'plugin-api/beta/components'; +``` + +### Usage ```js +``` + * `ClickOutside` This utility handle click events outside the component. @@ -81,7 +123,6 @@ import { ClickOutside } from 'plugin-api/beta/client/components'; ``` - * `CommentAuthorName` * `CommentTimestamp` * `CommentDetail` @@ -91,20 +132,17 @@ import { ClickOutside } from 'plugin-api/beta/client/components'; * `Recaptcha` ## HOCS - Higher Order Components -### Import -``` -import {withReaction} 'plugin-api/beta/hoc'; -``` - -### Hocs *`withGraphQLExtension`* This HOC allows components to register GraphQLExtensions for the framework. IMPORTANT: The extensions are only picked up when the component is used in a slot. +### Import ```js -import {withGraphQLExtension} 'plugin-api/beta/hoc'; +import { withGraphQLExtension } from 'plugin-api/beta/hoc'; +``` -// MyComponent.js +### Usage +```js withGraphQLExtension({ mutations: { UpdateNotificationSettings: () => ({ @@ -127,9 +165,33 @@ export default { * `withReaction` Provides you utilities to create components that interact with Reactions. +Check this tutorial to know more about the usage of `withReaction` [Creating a Basic Pride Reaction Plugin | Talk Documentation](https://docs.coralproject.net/talk/building-basic-plugin/) + +### Import +```js +import { withReaction } from 'plugin-api/beta/hoc'; +``` + +### Usage +```js +export default withReaction('pride')(PrideButton); +``` + + * `withTags` Provides you utilities to create components that interact with Tags. +### Import +```js +import { withTags } from 'plugin-api/beta/hoc'; +``` + +### Usage +```js +export default withTags('featured')(FeaturedButton); +``` + + * `withSortOption` * `withEmit` * `excludeIf` @@ -152,9 +214,50 @@ Provides you utilities to create components that interact with Tags. * `withSetCommentStatus` * `compose` -## Coral UI -### Import +## Services + +* `t` +To manage translations. + +### Import +```js +import { t } from 'coral-framework/services/perms'; ``` + +* `timeago` +Handle time with [timeago](https://github.com/hustcc/timeago.js) + +### Import +```js +import { timeago } from 'coral-framework/services/perms'; +``` + +* `can` +A permissions utility. + +### Import +```js +import { can } from 'coral-framework/services/perms'; +``` + +### Usage +```js +{can(currentUser, 'UPDATE_CONFIG') && ( + + {t('configure.configure')} + +)} +``` + +## Coral UI +Coral UI is a set of components to help you build your UI. This powers our core. + +### Import +```js import {Button} 'plugin-api/beta/components/ui'; ``` @@ -190,18 +293,3 @@ import {Button} 'plugin-api/beta/components/ui'; * `Dropdown` * `Option` * `BareButton` - -## Services -### Import -``` -import {t, timeago, can} 'plugin-api/beta/services'; -``` - -* `t` -To manage translations. - -* `timeago` -Handle time with [timeago](https://github.com/hustcc/timeago.js) - -* `can` -A permissions utility. From 36988d7e203482fca95ca31bd43dd174f706dc3c Mon Sep 17 00:00:00 2001 From: okbel Date: Thu, 22 Mar 2018 15:29:56 -0300 Subject: [PATCH 06/12] Forbidden component --- client/coral-admin/src/components/Forbidden.css | 8 ++++++++ client/coral-admin/src/components/Forbidden.js | 13 +++++++++++++ client/coral-admin/src/containers/Layout.js | 6 ++---- .../Moderation/components/ModerationQueue.css | 4 ---- views/admin.ejs | 11 ++++++----- 5 files changed, 29 insertions(+), 13 deletions(-) create mode 100644 client/coral-admin/src/components/Forbidden.css create mode 100644 client/coral-admin/src/components/Forbidden.js diff --git a/client/coral-admin/src/components/Forbidden.css b/client/coral-admin/src/components/Forbidden.css new file mode 100644 index 000000000..8f93cf869 --- /dev/null +++ b/client/coral-admin/src/components/Forbidden.css @@ -0,0 +1,8 @@ +.container { + max-width: 1280px; + margin: 0 auto; +} + +.copy { + padding: 20px 0; +} \ No newline at end of file diff --git a/client/coral-admin/src/components/Forbidden.js b/client/coral-admin/src/components/Forbidden.js new file mode 100644 index 000000000..0c50e6d76 --- /dev/null +++ b/client/coral-admin/src/components/Forbidden.js @@ -0,0 +1,13 @@ +import React from 'react'; +import styles from './Forbidden.css'; + +const Forbidden = () => ( +
+

+ This page is for team use only. Please contact an administrator if you + want to join this team. +

+
+); + +export default Forbidden; diff --git a/client/coral-admin/src/containers/Layout.js b/client/coral-admin/src/containers/Layout.js index aad9971c4..580b20f9b 100644 --- a/client/coral-admin/src/containers/Layout.js +++ b/client/coral-admin/src/containers/Layout.js @@ -11,6 +11,7 @@ import { logout } from 'coral-framework/actions/auth'; import { can } from 'coral-framework/services/perms'; import UserDetail from 'coral-admin/src/containers/UserDetail'; import PropTypes from 'prop-types'; +import Forbidden from '../components/Forbidden'; class LayoutContainer extends React.Component { render() { @@ -47,10 +48,7 @@ class LayoutContainer extends React.Component { } else { return ( -

- This page is for team use only. Please contact an administrator if - you want to join this team. -

+
); } diff --git a/client/coral-admin/src/routes/Moderation/components/ModerationQueue.css b/client/coral-admin/src/routes/Moderation/components/ModerationQueue.css index 465c7ccbd..cef4184db 100644 --- a/client/coral-admin/src/routes/Moderation/components/ModerationQueue.css +++ b/client/coral-admin/src/routes/Moderation/components/ModerationQueue.css @@ -6,10 +6,6 @@ margin-top: 16px; } -:global(html) { - height: inherit; -} - .list { outline: none; } diff --git a/views/admin.ejs b/views/admin.ejs index 1ecca390e..a5e05032e 100644 --- a/views/admin.ejs +++ b/views/admin.ejs @@ -4,17 +4,18 @@ Talk - Coral Admin From b0ea4960e36660bcdb7ad9988a94d8405a5a9cbf Mon Sep 17 00:00:00 2001 From: okbel Date: Thu, 22 Mar 2018 15:40:04 -0300 Subject: [PATCH 07/12] Working --- client/coral-admin/src/components/Layout.css | 4 +++- views/admin.ejs | 14 ++------------ 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/client/coral-admin/src/components/Layout.css b/client/coral-admin/src/components/Layout.css index ac13e96f7..1b3f1d811 100644 --- a/client/coral-admin/src/components/Layout.css +++ b/client/coral-admin/src/components/Layout.css @@ -1,4 +1,6 @@ .layout { margin: 0 auto; background-color: #FAFAFA; -} + height: inherit; + min-height: 100vh; +} \ No newline at end of file diff --git a/views/admin.ejs b/views/admin.ejs index a5e05032e..979e2ec41 100644 --- a/views/admin.ejs +++ b/views/admin.ejs @@ -4,18 +4,8 @@ Talk - Coral Admin From 61836423acf8fdb126086c63564b4ee5c1573ef7 Mon Sep 17 00:00:00 2001 From: okbel Date: Thu, 22 Mar 2018 16:21:13 -0300 Subject: [PATCH 08/12] Adding CommentNotFound Component --- .../src/tabs/stream/components/Stream.js | 11 +++--- .../tabs/stream/containers/CommentNotFound.js | 36 +++++++++++++++++++ 2 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 client/coral-embed-stream/src/tabs/stream/containers/CommentNotFound.js diff --git a/client/coral-embed-stream/src/tabs/stream/components/Stream.js b/client/coral-embed-stream/src/tabs/stream/components/Stream.js index 75f04da0a..cc4e8e939 100644 --- a/client/coral-embed-stream/src/tabs/stream/components/Stream.js +++ b/client/coral-embed-stream/src/tabs/stream/components/Stream.js @@ -15,14 +15,13 @@ import QuestionBox from '../../../components/QuestionBox'; import { Tab, TabCount, TabPane } from 'coral-ui'; import cn from 'classnames'; import get from 'lodash/get'; - import { reverseCommentParentTree } from '../../../graphql/utils'; import AllCommentsPane from './AllCommentsPane'; import ExtendableTabPanel from '../../../containers/ExtendableTabPanel'; +import ChangedUsername from './ChangedUsername'; +import CommentNotFound from '../containers/CommentNotFound'; import styles from './Stream.css'; -import ChangedUsername from './ChangedUsername'; - class Stream extends React.Component { constructor(props) { super(props); @@ -238,7 +237,11 @@ class Stream extends React.Component { keepCommentBox); if (highlightedComment === null) { - return {t('stream.comment_not_found')}; + return ( + + + + ); } const slotPassthrough = { root, asset }; diff --git a/client/coral-embed-stream/src/tabs/stream/containers/CommentNotFound.js b/client/coral-embed-stream/src/tabs/stream/containers/CommentNotFound.js new file mode 100644 index 000000000..91537aac4 --- /dev/null +++ b/client/coral-embed-stream/src/tabs/stream/containers/CommentNotFound.js @@ -0,0 +1,36 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Button } from 'coral-ui'; +import { setActiveTab } from '../../../actions/embed'; +import { bindActionCreators } from 'redux'; +import { connect } from 'react-redux'; +import t from 'coral-framework/services/i18n'; + +class CommentNotFound extends React.Component { + showAllTab = () => { + this.props.setActiveTab('all'); + }; + + render() { + return ( +
+

{t('stream.comment_not_found')}

+ +
+ ); + } +} + +CommentNotFound.propTypes = { + setActiveTab: PropTypes.func, +}; + +const mapDispatchToProps = dispatch => + bindActionCreators( + { + setActiveTab, + }, + dispatch + ); + +export default connect(null, mapDispatchToProps)(CommentNotFound); From 752c16f513135187bfb5a997d50086b228b4168e Mon Sep 17 00:00:00 2001 From: Kim Gardner Date: Thu, 22 Mar 2018 18:35:14 -0400 Subject: [PATCH 09/12] Move Plugin Client and Slots docs to API section --- docs/_config.yml | 20 +++++++++---------- .../{04-07-plugins-api.md => api/client.md} | 7 +++++-- docs/source/api/server.md | 2 +- .../slots.md} | 6 ++++-- 4 files changed, 20 insertions(+), 15 deletions(-) rename docs/source/{04-07-plugins-api.md => api/client.md} (98%) rename docs/source/{04-06-slots-and-plugins.md => api/slots.md} (98%) diff --git a/docs/_config.yml b/docs/_config.yml index 506bd2542..f269d8695 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -136,16 +136,6 @@ sidebar: url: /plugins-directory/ - title: Plugin Recipes url: /plugin-recipes/ - - title: Slots and Plugins - url: /slots-and-plugins/ - - title: Plugins API - url: /plugins-api/ - - title: Tutorials - children: - - title: Creating a Basic Plugin - url: /building-basic-plugin/ - - title: Customizing Plugins with Coral UI - url: /customizing-plugins-coral-ui/ - title: API children: - title: GraphQL Overview @@ -154,6 +144,16 @@ sidebar: url: /api/graphql/ - title: Server Plugin API url: /api/server/ + - title: Client Plugin API + url: /api/client/ + - title: Plugin Slots API + url: /api/slots/ + - title: Tutorials + children: + - title: Creating a Basic Plugin + url: /building-basic-plugin/ + - title: Customizing Plugins with Coral UI + url: /customizing-plugins-coral-ui/ - title: Migrating children: - title: Migrating to v4.0.0 diff --git a/docs/source/04-07-plugins-api.md b/docs/source/api/client.md similarity index 98% rename from docs/source/04-07-plugins-api.md rename to docs/source/api/client.md index 2f12fccf5..fd0ec42fc 100644 --- a/docs/source/04-07-plugins-api.md +++ b/docs/source/api/client.md @@ -1,7 +1,10 @@ --- -title: Plugins API -permalink: /plugins-api/ +title: Client Plugin API +permalink: /api/client/ +toc: true +class: configuration --- + We created a set of utilities to make it easier to create and add functionality to plugins. Feel free to check all the utilities here: `talk/plugin-api`. diff --git a/docs/source/api/server.md b/docs/source/api/server.md index 614c7b2ed..821b4b24f 100644 --- a/docs/source/api/server.md +++ b/docs/source/api/server.md @@ -524,4 +524,4 @@ module.exports = { } }; -``` \ No newline at end of file +``` diff --git a/docs/source/04-06-slots-and-plugins.md b/docs/source/api/slots.md similarity index 98% rename from docs/source/04-06-slots-and-plugins.md rename to docs/source/api/slots.md index 907c85862..4ac47a516 100644 --- a/docs/source/04-06-slots-and-plugins.md +++ b/docs/source/api/slots.md @@ -1,6 +1,8 @@ --- -title: Slots and Plugins -permalink: /slots-and-plugins/ +title: Plugin Slots API +permalink: /api/slots/ +toc: true +class: configuration --- Plugins make use of **"slots"** in order to change Talk's interface. From f69163d9c24e5879b80fe6b07b816a077895d791 Mon Sep 17 00:00:00 2001 From: Mendel Konikov Date: Fri, 23 Mar 2018 09:21:31 -0400 Subject: [PATCH 10/12] Clarifying importance of order in plugins.json --- docs/source/api/server.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/source/api/server.md b/docs/source/api/server.md index 614c7b2ed..d25487c2d 100644 --- a/docs/source/api/server.md +++ b/docs/source/api/server.md @@ -377,7 +377,11 @@ en: Which overrides the copy for the `embedlink.copy` template. You can also provide other languages as well by using the correct language -prefix. +prefix. + +When creating a plugin using this `translations` hook to override copy +from another plugin, be sure to list it after the plugin it's overriding +in the `plugins.json` file. ### websockets @@ -524,4 +528,4 @@ module.exports = { } }; -``` \ No newline at end of file +``` From 4881c33942aaf05bf269eda8a8b263ad0ebb1a97 Mon Sep 17 00:00:00 2001 From: okbel Date: Fri, 23 Mar 2018 16:52:38 -0300 Subject: [PATCH 11/12] Calc added --- client/coral-admin/src/components/Layout.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/coral-admin/src/components/Layout.css b/client/coral-admin/src/components/Layout.css index 1b3f1d811..9244c7c80 100644 --- a/client/coral-admin/src/components/Layout.css +++ b/client/coral-admin/src/components/Layout.css @@ -2,5 +2,5 @@ margin: 0 auto; background-color: #FAFAFA; height: inherit; - min-height: 100vh; + min-height: calc(100vh - 58px); } \ No newline at end of file From 7a505ac5fcfca9c4284d2420320e2eaf40b5483a Mon Sep 17 00:00:00 2001 From: Kim Gardner Date: Fri, 23 Mar 2018 17:08:41 -0400 Subject: [PATCH 12/12] Tweak on tutorial --- docs/source/05-03-when-youve-installed-talk.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/source/05-03-when-youve-installed-talk.md b/docs/source/05-03-when-youve-installed-talk.md index aff0de83c..7bd775469 100644 --- a/docs/source/05-03-when-youve-installed-talk.md +++ b/docs/source/05-03-when-youve-installed-talk.md @@ -140,5 +140,3 @@ For the first month or so, we recommend including a link to the launch article m A regular space for conversation about the conversation is always welcome in any successful community, and is a great source of ideas for improvement.   **_We hope you enjoy using Talk, and that it helps your communities to thrive. If you have any questions or suggestions for this piece, or would like to try Talk on your site, please [contact us.](https://coralproject.net/contact.html)_**   - -[_Red button image by włodi_](https://www.flickr.com/photos/wlodi/3085157011/)_, CC-BY-SA 2.0_