@@ -36,8 +35,7 @@ class Comment extends React.Component {
className={cn(styles.username, `${pluginName}-comment-username`)}
fill="commentAuthorName"
defaultComponent={CommentAuthorName}
- queryData={queryData}
- data={data}
+ passthrough={slotPassthrough}
inline
/>
@@ -45,9 +43,7 @@ class Comment extends React.Component {
fill="commentTimestamp"
defaultComponent={CommentTimestamp}
className={cn(styles.timestamp, `${pluginName}-comment-timestamp`)}
- created_at={comment.created_at}
- data={data}
- queryData={queryData}
+ passthrough={{ created_at: comment.created_at, ...slotPassthrough }}
inline
/>
@@ -62,10 +58,7 @@ class Comment extends React.Component {
>
diff --git a/plugins/talk-plugin-flag-details/client/components/FlagDetails.js b/plugins/talk-plugin-flag-details/client/components/FlagDetails.js
index 607ba48a2..7197c0360 100644
--- a/plugins/talk-plugin-flag-details/client/components/FlagDetails.js
+++ b/plugins/talk-plugin-flag-details/client/components/FlagDetails.js
@@ -26,7 +26,8 @@ class FlagDetails extends Component {
}, {});
const reasons = Object.keys(summaries);
- const queryData = {
+ const slotPassthrough = {
+ data,
root,
comment,
};
@@ -52,12 +53,11 @@ class FlagDetails extends Component {
{more && (
)}
diff --git a/plugins/talk-plugin-moderation-actions/client/components/ModerationActions.js b/plugins/talk-plugin-moderation-actions/client/components/ModerationActions.js
index 68abce826..6cf2558c1 100644
--- a/plugins/talk-plugin-moderation-actions/client/components/ModerationActions.js
+++ b/plugins/talk-plugin-moderation-actions/client/components/ModerationActions.js
@@ -22,6 +22,12 @@ export default class ModerationActions extends React.Component {
hideMenu,
} = this.props;
+ const slotPassthrough = {
+ comment,
+ asset,
+ data,
+ };
+
return (
diff --git a/plugins/talk-plugin-notifications/client/components/Settings.js b/plugins/talk-plugin-notifications/client/components/Settings.js
index 010422491..9fd16bc0d 100644
--- a/plugins/talk-plugin-notifications/client/components/Settings.js
+++ b/plugins/talk-plugin-notifications/client/components/Settings.js
@@ -29,8 +29,15 @@ class Settings extends React.Component {
email,
} = this.props;
+ const slotPassthrough = {
+ root,
+ setTurnOffInputFragment,
+ updateNotificationSettings,
+ disabled: needEmailVerification,
+ };
+
return (
-
+
{t('talk-plugin-notifications.settings_title')}
{needEmailVerification && }
@@ -45,11 +52,8 @@ class Settings extends React.Component {
-
+
);
}
diff --git a/plugins/talk-plugin-viewing-options/client/components/Category.js b/plugins/talk-plugin-viewing-options/client/components/Category.js
index 0fc13d16f..78ce4dae3 100644
--- a/plugins/talk-plugin-viewing-options/client/components/Category.js
+++ b/plugins/talk-plugin-viewing-options/client/components/Category.js
@@ -1,4 +1,5 @@
import React from 'react';
+import PropTypes from 'prop-types';
import styles from './Category.css';
import { Slot } from 'plugin-api/beta/client/components';
@@ -8,7 +9,7 @@ const childFactory = child => (
);
-const ViewingOptions = ({ slot, title, data, asset, root }) => {
+const Category = ({ slot, title, slotPassthrough }) => {
return (
{title}
@@ -17,11 +18,16 @@ const ViewingOptions = ({ slot, title, data, asset, root }) => {
childFactory={childFactory}
className={styles.list}
component={'ul'}
- data={data}
- queryData={{ asset, root }}
+ passthrough={slotPassthrough}
/>
);
};
-export default ViewingOptions;
+Category.propTypes = {
+ slot: PropTypes.string.isRequired,
+ title: PropTypes.string.isRequired,
+ slotPassthrough: PropTypes.object.isRequired,
+};
+
+export default Category;
diff --git a/plugins/talk-plugin-viewing-options/client/components/Menu.js b/plugins/talk-plugin-viewing-options/client/components/Menu.js
index 7ff5ac316..bb44ce775 100644
--- a/plugins/talk-plugin-viewing-options/client/components/Menu.js
+++ b/plugins/talk-plugin-viewing-options/client/components/Menu.js
@@ -1,4 +1,5 @@
import React from 'react';
+import PropTypes from 'prop-types';
import cn from 'classnames';
import styles from './Menu.css';
import { capitalize } from 'plugin-api/beta/client/utils';
@@ -13,16 +14,19 @@ class Menu extends React.Component {
};
render() {
+ const { slotPassthrough } = this.props;
return (
{Object.keys(this.categories).map(category => (
))}
@@ -31,4 +35,8 @@ class Menu extends React.Component {
}
}
+Menu.propTypes = {
+ slotPassthrough: PropTypes.object.isRequired,
+};
+
export default Menu;
diff --git a/plugins/talk-plugin-viewing-options/client/components/ViewingOptions.js b/plugins/talk-plugin-viewing-options/client/components/ViewingOptions.js
index 8a0c09f61..40aa96d1e 100644
--- a/plugins/talk-plugin-viewing-options/client/components/ViewingOptions.js
+++ b/plugins/talk-plugin-viewing-options/client/components/ViewingOptions.js
@@ -1,4 +1,5 @@
import React from 'react';
+import PropTypes from 'prop-types';
import cn from 'classnames';
import styles from './ViewingOptions.css';
import { t } from 'plugin-api/beta/client/services';
@@ -24,7 +25,7 @@ class ViewingOptions extends React.Component {
};
render() {
- const { open, data, root, asset } = this.props;
+ const { open, slotPassthrough } = this.props;
return (
@@ -41,11 +42,18 @@ class ViewingOptions extends React.Component {
)}
- {open && }
+ {open && }
);
}
}
+ViewingOptions.propTypes = {
+ slotPassthrough: PropTypes.object.isRequired,
+ open: PropTypes.bool.isRequired,
+ openMenu: PropTypes.func.isRequired,
+ closeMenu: PropTypes.func.isRequired,
+};
+
export default ViewingOptions;
diff --git a/plugins/talk-plugin-viewing-options/client/containers/ViewingOptions.js b/plugins/talk-plugin-viewing-options/client/containers/ViewingOptions.js
index b30721346..3c1d0d2af 100644
--- a/plugins/talk-plugin-viewing-options/client/containers/ViewingOptions.js
+++ b/plugins/talk-plugin-viewing-options/client/containers/ViewingOptions.js
@@ -4,6 +4,7 @@ import ViewingOptions from '../components/ViewingOptions';
import { openMenu, closeMenu } from '../actions';
import { compose, gql } from 'react-apollo';
import { getSlotFragmentSpreads } from 'plugin-api/beta/client/utils';
+import { mapProps } from 'recompose';
const slots = ['viewingOptionsSort', 'viewingOptionsFilter'];
@@ -29,7 +30,17 @@ const withViewingOptionsFragments = withFragments({
const enhance = compose(
connect(mapStateToProps, mapDispatchToProps),
- withViewingOptionsFragments
+ withViewingOptionsFragments,
+ mapProps(({ root, asset, data, open, openMenu, closeMenu }) => ({
+ slotPassthrough: {
+ data,
+ root,
+ asset,
+ },
+ open,
+ openMenu,
+ closeMenu,
+ }))
);
export default enhance(ViewingOptions);