From 0de5a328ab0909406e444f38cb43df787557d62e Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Mon, 20 Nov 2017 21:11:59 +0100 Subject: [PATCH] Slot streamSettings --- .../tabs/configure/components/Configure.js | 2 ++ .../src/tabs/configure/components/Settings.js | 11 +++++++++ .../tabs/configure/containers/Configure.js | 2 ++ .../src/tabs/configure/containers/Settings.js | 23 ++++++++++++++++--- 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/client/coral-embed-stream/src/tabs/configure/components/Configure.js b/client/coral-embed-stream/src/tabs/configure/components/Configure.js index 074fe0616..a7000864e 100644 --- a/client/coral-embed-stream/src/tabs/configure/components/Configure.js +++ b/client/coral-embed-stream/src/tabs/configure/components/Configure.js @@ -8,6 +8,8 @@ class Configure extends React.Component { return (

diff --git a/client/coral-embed-stream/src/tabs/configure/components/Settings.js b/client/coral-embed-stream/src/tabs/configure/components/Settings.js index 99a29a527..6c9a3498e 100644 --- a/client/coral-embed-stream/src/tabs/configure/components/Settings.js +++ b/client/coral-embed-stream/src/tabs/configure/components/Settings.js @@ -6,6 +6,7 @@ import cn from 'classnames'; import styles from './Settings.css'; import Configuration from './Configuration'; import QuestionBoxBuilder from './QuestionBoxBuilder'; +import Slot from 'coral-framework/components/Slot'; class Settings extends React.Component { render() { @@ -24,6 +25,8 @@ class Settings extends React.Component { onQuestionBoxContentChange, canSave, onApply, + slotProps, + queryData, } = this.props; return (
@@ -35,6 +38,7 @@ class Settings extends React.Component { checked={canSave} cStyle={canSave ? 'green' : 'darkGrey'} onClick={onApply} + disabled={!canSave} > {t('configure.apply')} @@ -71,6 +75,11 @@ class Settings extends React.Component {
} +
); @@ -78,6 +87,8 @@ class Settings extends React.Component { } Settings.propTypes = { + queryData: PropTypes.object.isRequired, + slotProps: PropTypes.object.isRequired, settings: PropTypes.object.isRequired, canSave: PropTypes.bool.isRequired, onToggleModeration: PropTypes.func.isRequired, diff --git a/client/coral-embed-stream/src/tabs/configure/containers/Configure.js b/client/coral-embed-stream/src/tabs/configure/containers/Configure.js index 3e93e6f64..e9da3fc79 100644 --- a/client/coral-embed-stream/src/tabs/configure/containers/Configure.js +++ b/client/coral-embed-stream/src/tabs/configure/containers/Configure.js @@ -28,6 +28,7 @@ const withConfigureFragments = withFragments({ root: gql` fragment CoralEmbedStream_Configure_root on RootQuery { __typename + ...${getDefinitionName(Settings.fragments.root)} } `, asset: gql` @@ -38,6 +39,7 @@ const withConfigureFragments = withFragments({ } ${AssetStatusInfo.fragments.asset} ${Settings.fragments.asset} + ${Settings.fragments.root} `, }); diff --git a/client/coral-embed-stream/src/tabs/configure/containers/Settings.js b/client/coral-embed-stream/src/tabs/configure/containers/Settings.js index 7d2a2a80d..41d9c21b2 100644 --- a/client/coral-embed-stream/src/tabs/configure/containers/Settings.js +++ b/client/coral-embed-stream/src/tabs/configure/containers/Settings.js @@ -1,7 +1,7 @@ import React from 'react'; import {gql, compose} from 'react-apollo'; import {withFragments, withMergedSettings} from 'coral-framework/hocs'; -import {getErrorMessages} from 'coral-framework/utils'; +import {getErrorMessages, getSlotFragmentSpreads} from 'coral-framework/utils'; import Settings from '../components/Settings.js'; import PropTypes from 'prop-types'; import {withUpdateAssetSettings} from 'coral-framework/graphql/mutations'; @@ -10,6 +10,10 @@ import {bindActionCreators} from 'redux'; import {notify} from 'coral-framework/actions/notification'; import {clearPending, updatePending} from '../../../actions/configure'; +const slots = [ + 'streamSettings', +]; + class SettingsContainer extends React.Component { toggleModeration = () => { @@ -48,8 +52,11 @@ class SettingsContainer extends React.Component { }; render() { + const {mergedSettings, canSave, data, root, asset} = this.props; return ; } } SettingsContainer.propTypes = { + data: PropTypes.object.isRequired, + root: PropTypes.object.isRequired, asset: PropTypes.object.isRequired, pending: PropTypes.object.isRequired, mergedSettings: PropTypes.object.isRequired, @@ -74,6 +83,12 @@ SettingsContainer.propTypes = { }; const withSettingsFragments = withFragments({ + root: gql` + fragment CoralEmbedStream_Settings_root on RootQuery { + __typename + ${getSlotFragmentSpreads(slots, 'root')} + } + `, asset: gql` fragment CoralEmbedStream_Settings_asset on Asset { id @@ -83,7 +98,9 @@ const withSettingsFragments = withFragments({ questionBoxEnable questionBoxIcon questionBoxContent + ${getSlotFragmentSpreads(slots, 'settings')} } + ${getSlotFragmentSpreads(slots, 'asset')} } `, });