From ce18339f255efa96151688ae3dcef2ac55ea1fe3 Mon Sep 17 00:00:00 2001 From: seanyesmunt Date: Wed, 22 Aug 2018 01:03:40 -0400 Subject: [PATCH] add autodownload toggle to subscriptions page --- src/renderer/page/subscriptions/index.js | 5 +++++ src/renderer/page/subscriptions/view.jsx | 24 +++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/renderer/page/subscriptions/index.js b/src/renderer/page/subscriptions/index.js index d5de2d066..efc00db9b 100644 --- a/src/renderer/page/subscriptions/index.js +++ b/src/renderer/page/subscriptions/index.js @@ -1,4 +1,5 @@ import { connect } from 'react-redux'; +import * as settings from 'constants/settings'; import { selectSubscriptionClaims, selectSubscriptions, @@ -7,6 +8,8 @@ import { selectNotifications, } from 'redux/selectors/subscriptions'; import { setSubscriptionNotifications, doFetchMySubscriptions } from 'redux/actions/subscriptions'; +import { doSetClientSetting } from 'redux/actions/settings'; +import { makeSelectClientSetting } from 'redux/selectors/settings'; import SubscriptionsPage from './view'; const select = state => ({ @@ -16,6 +19,7 @@ const select = state => ({ subscriptions: selectSubscriptions(state), subscriptionClaims: selectSubscriptionClaims(state), notifications: selectNotifications(state), + autoDownload: makeSelectClientSetting(settings.AUTO_DOWNLOAD)(state), }); export default connect( @@ -23,5 +27,6 @@ export default connect( { setSubscriptionNotifications, doFetchMySubscriptions, + doSetClientSetting, } )(SubscriptionsPage); diff --git a/src/renderer/page/subscriptions/view.jsx b/src/renderer/page/subscriptions/view.jsx index a38556644..16f3f1bd0 100644 --- a/src/renderer/page/subscriptions/view.jsx +++ b/src/renderer/page/subscriptions/view.jsx @@ -1,12 +1,14 @@ // @flow import React from 'react'; import Page from 'component/page'; +import * as settings from 'constants/settings'; import type { Subscription } from 'types/subscription'; import * as NOTIFICATION_TYPES from 'constants/notification_types'; import Button from 'component/button'; import FileList from 'component/fileList'; import type { Claim } from 'types/claim'; import HiddenNsfwClaims from 'component/hiddenNsfwClaims'; +import { FormField, FormRow } from 'component/common/form'; type Props = { doFetchMySubscriptions: () => void, @@ -15,9 +17,16 @@ type Props = { subscriptionClaims: Array<{ uri: string, claims: Array }>, notifications: {}, loading: boolean, + autoDownload: boolean, + doSetClientSetting: (string, boolean) => void, }; export default class extends React.PureComponent { + constructor() { + super(); + (this: any).onAutoDownloadChange = this.onAutoDownloadChange.bind(this); + } + componentDidMount() { const { notifications, setSubscriptionNotifications, doFetchMySubscriptions } = this.props; doFetchMySubscriptions(); @@ -34,8 +43,12 @@ export default class extends React.PureComponent { setSubscriptionNotifications(newNotifications); } + onAutoDownloadChange(event: SyntheticInputEvent<*>) { + this.props.doSetClientSetting(settings.AUTO_DOWNLOAD, event.target.checked); + } + render() { - const { subscriptions, subscriptionClaims, loading } = this.props; + const { subscriptions, subscriptionClaims, loading, autoDownload } = this.props; let claimList = []; subscriptionClaims.forEach(claimData => { @@ -47,6 +60,15 @@ export default class extends React.PureComponent { return ( + + + {!subscriptions.length && (
{__("It looks like you aren't subscribed to any channels yet.")}