From 68d766e670b9018aff6f488b1b97d23cbb64b61a Mon Sep 17 00:00:00 2001 From: btzr-io Date: Wed, 20 Jun 2018 17:27:35 -0600 Subject: [PATCH 01/13] block pointer events of disabled cards #1456 --- src/renderer/scss/component/_card.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/renderer/scss/component/_card.scss b/src/renderer/scss/component/_card.scss index 41ffd5473..995a37cba 100644 --- a/src/renderer/scss/component/_card.scss +++ b/src/renderer/scss/component/_card.scss @@ -66,6 +66,7 @@ .card--disabled { opacity: 0.3; + pointer-events: none; } .card__media { -- 2.45.3 From 611a890888951890ed61e0818dc07ae4bb9369f3 Mon Sep 17 00:00:00 2001 From: Baltazar Gomez Date: Wed, 20 Jun 2018 18:41:03 -0600 Subject: [PATCH 02/13] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9fe830fe..be6756066 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,6 +56,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). * URI and outpoint not being passed properly to API ([#1494](https://github.com/lbryio/lbry-app/issues/1494)) * Incorrect markdown preview on url with parentheses ([#1570](https://github.com/lbryio/lbry-app/issues/1570)) * Fix Linux upgrade path and add manual installation note ([#1606](https://github.com/lbryio/lbry-app/issues/1606)) + * Fix can type in unfocused fields while publishing without selecting file ([#1456](https://github.com/lbryio/lbry-app/issues/1456)) -- 2.45.3 From 3a81c25dab129660f66c24651d36c2d5e86cbb18 Mon Sep 17 00:00:00 2001 From: btzr-io Date: Wed, 20 Jun 2018 19:33:00 -0600 Subject: [PATCH 03/13] add icons for external-links --- src/renderer/component/externalLink/view.jsx | 13 +++++++------ src/renderer/constants/icons.js | 2 ++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/renderer/component/externalLink/view.jsx b/src/renderer/component/externalLink/view.jsx index 89b63e648..70ce111fe 100644 --- a/src/renderer/component/externalLink/view.jsx +++ b/src/renderer/component/externalLink/view.jsx @@ -1,6 +1,7 @@ // @flow import * as React from 'react'; import { MODALS, isURIValid } from 'lbry-redux'; +import * as icons from 'constants/icons'; import Button from 'component/button'; type Props = { @@ -32,12 +33,12 @@ class ExternalLink extends React.PureComponent { element = ( + /> ); } @@ -47,10 +48,10 @@ class ExternalLink extends React.PureComponent { + /> ); } diff --git a/src/renderer/constants/icons.js b/src/renderer/constants/icons.js index 845039e9f..f8d2407db 100644 --- a/src/renderer/constants/icons.js +++ b/src/renderer/constants/icons.js @@ -26,3 +26,5 @@ export const HEART = 'Heart'; export const UNLOCK = 'Unlock'; export const CHECK_SIMPLE = 'Check'; export const GLOBE = 'Globe'; +export const LINK = 'Link'; +export const EXTERNAL_LINK = 'ExternalLink'; -- 2.45.3 From b49428b76b09f263f99f1ec66eb9fdd413127a64 Mon Sep 17 00:00:00 2001 From: btzr-io Date: Wed, 20 Jun 2018 20:22:13 -0600 Subject: [PATCH 04/13] improve disabled form-field style --- src/renderer/component/common/form-components/form-field.jsx | 1 + src/renderer/scss/component/_form-field.scss | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/renderer/component/common/form-components/form-field.jsx b/src/renderer/component/common/form-components/form-field.jsx index 3a530ea64..0b23e49e8 100644 --- a/src/renderer/component/common/form-components/form-field.jsx +++ b/src/renderer/component/common/form-components/form-field.jsx @@ -82,6 +82,7 @@ export class FormField extends React.PureComponent {
{(label || errorMessage) && ( diff --git a/src/renderer/scss/component/_form-field.scss b/src/renderer/scss/component/_form-field.scss index d93a1885b..e46223982 100644 --- a/src/renderer/scss/component/_form-field.scss +++ b/src/renderer/scss/component/_form-field.scss @@ -41,6 +41,11 @@ } } +.form-field.form-field--disabled { + opacity: 0.4; + pointer-events: none; +} + .form-field--SimpleMDE { display: block; width: 100%; -- 2.45.3 From 9657709c160a99c007c02c2a4a4f9fb3d1921c66 Mon Sep 17 00:00:00 2001 From: btzr-io Date: Thu, 21 Jun 2018 00:01:19 -0600 Subject: [PATCH 05/13] force highlight update of pagination --- CHANGELOG.md | 16 ++++++++-------- src/renderer/page/channel/view.jsx | 5 +++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be6756066..005f86c54 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,7 +22,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). * Pre-fill publish URL after clicking "Put something here" link ([#1303](https://github.com/lbryio/lbry-app/pull/1303)) * Danger JS to automate code reviews ([#1289](https://github.com/lbryio/lbry-app/pull/1289)) * 'Go to page' input on channel pagination ([#1166](https://github.com/lbryio/lbry-app/pull/1166)) - + ### Changed * LBRY App UI Redesign 5.0 implemented including new theme, layout, and improved search mechanics ([#870](https://github.com/lbryio/lbry-app/pull/870)) and ([#1173](https://github.com/lbryio/lbry-app/pull/1173)) * Adapted dark mode to redesign ([#1269](https://github.com/lbryio/lbry-app/pull/1269)) @@ -32,7 +32,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). * Made font in price badge larger ([#1420](https://github.com/lbryio/lbry-app/pull/1420)) * Move rewards logic to interal api ([#1509](https://github.com/lbryio/lbry-app/pull/1509)) * Narrative about Feature Request on Help Page and Report Page ([#1551](https://github.com/lbryio/lbry-app/pull/1551)) - + ### Fixed * Create channel and publish immediately([#1481](https://github.com/lbryio/lbry-app/pull/1481)) @@ -57,9 +57,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). * Incorrect markdown preview on url with parentheses ([#1570](https://github.com/lbryio/lbry-app/issues/1570)) * Fix Linux upgrade path and add manual installation note ([#1606](https://github.com/lbryio/lbry-app/issues/1606)) * Fix can type in unfocused fields while publishing without selecting file ([#1456](https://github.com/lbryio/lbry-app/issues/1456)) - - - + * Fix navigation button resulting incorrect page designation ([#1502](https://github.com/lbryio/lbry-app/issues/1502)) + + ## [0.21.6] - 2018-06-05 ### Fixed @@ -80,9 +80,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). ### Changed * Rewards now rely on API data ([#1329](https://github.com/lbryio/lbry-app/issues/1329)) - - - + + + ## [0.21.4] - 2018-05-10 ### Changed diff --git a/src/renderer/page/channel/view.jsx b/src/renderer/page/channel/view.jsx index 9722c78a5..03324cf3f 100644 --- a/src/renderer/page/channel/view.jsx +++ b/src/renderer/page/channel/view.jsx @@ -66,7 +66,7 @@ class ChannelPage extends React.PureComponent { render() { const { fetching, claimsInChannel, claim, page, totalPages } = this.props; const { name, permanent_url: permanentUrl, claim_id: claimId } = claim; - + const currentPage = parseInt((page || 1) - 1, 10); let contentList; if (fetching) { contentList = ; @@ -104,7 +104,8 @@ class ChannelPage extends React.PureComponent { breakClassName="pagination__item pagination__item--break" marginPagesDisplayed={2} onPageChange={e => this.changePage(e.selected + 1)} - initialPage={parseInt(page - 1, 10)} + forcePage={currentPage} + initialPage={currentPage} containerClassName="pagination" /> -- 2.45.3 From 1c7d0165dc75887092c198b39cc4a68bcd1c4f54 Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Thu, 21 Jun 2018 14:32:16 -0400 Subject: [PATCH 06/13] fix pagination hover cursor --- src/renderer/scss/component/_pagination.scss | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/renderer/scss/component/_pagination.scss b/src/renderer/scss/component/_pagination.scss index 6bb885469..baec768e4 100644 --- a/src/renderer/scss/component/_pagination.scss +++ b/src/renderer/scss/component/_pagination.scss @@ -9,12 +9,12 @@ line-height: $spacing-vertical * 1.5; height: $spacing-vertical * 1.5; border-radius: 2px; - &:not(.pagination__item--selected):hover { + + &:not(.pagination__item--selected):not(.pagination__item--break):not(.disabled):hover { background: rgba(0, 0, 0, 0.2); - > a { - cursor: hand; - } + cursor: pointer; } + > a { display: inline-block; padding: 0 $spacing-vertical * 2 / 3; -- 2.45.3 From 4d22c7ea10a7d2450ff79fcc895792d8282a0959 Mon Sep 17 00:00:00 2001 From: btzr-io Date: Thu, 21 Jun 2018 14:11:14 -0600 Subject: [PATCH 07/13] prevent interaction while file / folder dialog is open --- CHANGELOG.md | 2 ++ src/renderer/component/common/file-exporter.jsx | 3 +-- src/renderer/component/common/file-selector.jsx | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 005f86c54..34d050f5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -58,6 +58,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). * Fix Linux upgrade path and add manual installation note ([#1606](https://github.com/lbryio/lbry-app/issues/1606)) * Fix can type in unfocused fields while publishing without selecting file ([#1456](https://github.com/lbryio/lbry-app/issues/1456)) * Fix navigation button resulting incorrect page designation ([#1502](https://github.com/lbryio/lbry-app/issues/1502)) + * Fix shouldn't allow to open multiple export and choose file dialogs ([#1175](https://github.com/lbryio/lbry-app/issues/1175)) + ## [0.21.6] - 2018-06-05 diff --git a/src/renderer/component/common/file-exporter.jsx b/src/renderer/component/common/file-exporter.jsx index 8ab48e05c..d426c1583 100644 --- a/src/renderer/component/common/file-exporter.jsx +++ b/src/renderer/component/common/file-exporter.jsx @@ -2,7 +2,6 @@ import fs from 'fs'; import path from 'path'; import React from 'react'; -import PropTypes from 'prop-types'; import Button from 'component/button'; import parseData from 'util/parseData'; import * as icons from 'constants/icons'; @@ -56,7 +55,7 @@ class FileExporter extends React.PureComponent { ], }; - remote.dialog.showSaveDialog(options, filename => { + remote.dialog.showSaveDialog(remote.getCurrentWindow(), options, filename => { // User hit cancel so do nothing: if (!filename) return; // Get extension and remove initial dot diff --git a/src/renderer/component/common/file-selector.jsx b/src/renderer/component/common/file-selector.jsx index d07d52dbb..ec19394e1 100644 --- a/src/renderer/component/common/file-selector.jsx +++ b/src/renderer/component/common/file-selector.jsx @@ -25,6 +25,7 @@ class FileSelector extends React.PureComponent { handleButtonClick() { remote.dialog.showOpenDialog( + remote.getCurrentWindow(), { properties: this.props.type === 'file' ? ['openFile'] : ['openDirectory', 'createDirectory'], -- 2.45.3 From b3ed3e6d1abd83b25faa883387401151de372965 Mon Sep 17 00:00:00 2001 From: btzr-io Date: Thu, 21 Jun 2018 14:16:55 -0600 Subject: [PATCH 08/13] tidy up --- .../component/common/file-exporter.jsx | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/renderer/component/common/file-exporter.jsx b/src/renderer/component/common/file-exporter.jsx index d426c1583..fe32fa1d4 100644 --- a/src/renderer/component/common/file-exporter.jsx +++ b/src/renderer/component/common/file-exporter.jsx @@ -55,16 +55,20 @@ class FileExporter extends React.PureComponent { ], }; - remote.dialog.showSaveDialog(remote.getCurrentWindow(), options, filename => { - // User hit cancel so do nothing: - if (!filename) return; - // Get extension and remove initial dot - const format = path.extname(filename).replace(/\./g, ''); - // Parse data to string with the chosen format - const parsed = parseData(data, format, filters); - // Write file - parsed && this.handleFileCreation(filename, parsed); - }); + remote.dialog.showSaveDialog( + remote.getCurrentWindow(), + options, + filename => { + // User hit cancel so do nothing: + if (!filename) return; + // Get extension and remove initial dot + const format = path.extname(filename).replace(/\./g, ''); + // Parse data to string with the chosen format + const parsed = parseData(data, format, filters); + // Write file + parsed && this.handleFileCreation(filename, parsed); + } + ); } render() { -- 2.45.3 From 78055ad0d16784ca5dfde90a000544d07718ccd6 Mon Sep 17 00:00:00 2001 From: Mark Beamer Jr Date: Mon, 18 Jun 2018 23:36:15 -0400 Subject: [PATCH 09/13] fixed isPlayable to only play for video or audio. --- .../component/fileListSearch/index.js | 1 + .../component/fileListSearch/view.jsx | 1 + src/renderer/component/wunderbar/index.js | 7 ++-- src/renderer/component/wunderbar/view.jsx | 7 ++-- src/renderer/constants/settings.js | 1 + src/renderer/page/settings/index.js | 6 +++- src/renderer/page/settings/view.jsx | 36 ++++++++++++++----- src/renderer/redux/reducers/settings.js | 1 + 8 files changed, 46 insertions(+), 14 deletions(-) diff --git a/src/renderer/component/fileListSearch/index.js b/src/renderer/component/fileListSearch/index.js index 5f4011e2d..5b6d96713 100644 --- a/src/renderer/component/fileListSearch/index.js +++ b/src/renderer/component/fileListSearch/index.js @@ -6,6 +6,7 @@ const select = (state, props) => ({ uris: makeSelectSearchUris(props.query)(state), downloadUris: selectSearchDownloadUris(props.query)(state), isSearching: selectIsSearching(state), + resultCount: makeSelectClientSetting(settings.RESULT_COUNT)(state), }); const perform = () => ({}); diff --git a/src/renderer/component/fileListSearch/view.jsx b/src/renderer/component/fileListSearch/view.jsx index e77e667df..248b0045e 100644 --- a/src/renderer/component/fileListSearch/view.jsx +++ b/src/renderer/component/fileListSearch/view.jsx @@ -11,6 +11,7 @@ type Props = { isSearching: boolean, uris: ?Array, downloadUris: ?Array, + resultCount: number, }; class FileListSearch extends React.PureComponent { diff --git a/src/renderer/component/wunderbar/index.js b/src/renderer/component/wunderbar/index.js index 2332fc81a..27a617452 100644 --- a/src/renderer/component/wunderbar/index.js +++ b/src/renderer/component/wunderbar/index.js @@ -7,6 +7,8 @@ import { doBlurSearchInput, doSearch, } from 'lbry-redux'; +import { makeSelectClientSetting } from 'redux/selectors/settings'; +import * as settings from 'constants/settings'; import { doNavigate } from 'redux/actions/navigation'; import Wunderbar from './view'; @@ -21,12 +23,13 @@ const select = state => { return { ...searchState, wunderbarValue, + resultCount: makeSelectClientSetting(settings.RESULT_COUNT)(state), }; }; const perform = dispatch => ({ - onSearch: query => { - dispatch(doSearch(query, 30)); // Hard coding this for now until https://github.com/lbryio/lbry-app/pull/1639 is merged + onSearch: (query, size) => { + dispatch(doSearch(query, size)); dispatch(doNavigate(`/search`, { query })); }, onSubmit: (uri, extraParams) => dispatch(doNavigate('/show', { uri, ...extraParams })), diff --git a/src/renderer/component/wunderbar/view.jsx b/src/renderer/component/wunderbar/view.jsx index 5c3917a09..cdfc38d4c 100644 --- a/src/renderer/component/wunderbar/view.jsx +++ b/src/renderer/component/wunderbar/view.jsx @@ -15,6 +15,7 @@ type Props = { suggestions: Array, doFocus: () => void, doBlur: () => void, + resultCount: number, }; class WunderBar extends React.PureComponent { @@ -45,7 +46,7 @@ class WunderBar extends React.PureComponent { } handleSubmit(value: string, suggestion?: { value: string, type: string }) { - const { onSubmit, onSearch } = this.props; + const { onSubmit, onSearch, resultCount } = this.props; const query = value.trim(); const getParams = () => { const parts = query.split('?'); @@ -61,7 +62,7 @@ class WunderBar extends React.PureComponent { // User selected a suggestion if (suggestion) { if (suggestion.type === 'search') { - onSearch(query); + onSearch(query, resultCount); } else { const params = getParams(); const uri = normalizeURI(query); @@ -78,7 +79,7 @@ class WunderBar extends React.PureComponent { const params = getParams(); onSubmit(uri, params); } catch (e) { - onSearch(query); + onSearch(query, resultCount); } } diff --git a/src/renderer/constants/settings.js b/src/renderer/constants/settings.js index 92e9ea543..d27c888de 100644 --- a/src/renderer/constants/settings.js +++ b/src/renderer/constants/settings.js @@ -13,3 +13,4 @@ export const THEME = 'theme'; export const THEMES = 'themes'; export const AUTOMATIC_DARK_MODE_ENABLED = 'automaticDarkModeEnabled'; export const AUTOPLAY = 'autoplay'; +export const RESULT_COUNT = 'resultCount'; diff --git a/src/renderer/page/settings/index.js b/src/renderer/page/settings/index.js index 7230cb12d..6368358da 100644 --- a/src/renderer/page/settings/index.js +++ b/src/renderer/page/settings/index.js @@ -27,6 +27,7 @@ const select = state => ({ languages: selectLanguages(state), automaticDarkModeEnabled: makeSelectClientSetting(settings.AUTOMATIC_DARK_MODE_ENABLED)(state), autoplay: makeSelectClientSetting(settings.AUTOPLAY)(state), + resultCount: makeSelectClientSetting(settings.RESULT_COUNT)(state), }); const perform = dispatch => ({ @@ -37,4 +38,7 @@ const perform = dispatch => ({ changeLanguage: newLanguage => dispatch(doChangeLanguage(newLanguage)), }); -export default connect(select, perform)(SettingsPage); +export default connect( + select, + perform +)(SettingsPage); diff --git a/src/renderer/page/settings/view.jsx b/src/renderer/page/settings/view.jsx index 9823645de..c76fefa1a 100644 --- a/src/renderer/page/settings/view.jsx +++ b/src/renderer/page/settings/view.jsx @@ -20,7 +20,7 @@ type DaemonSettings = { type Props = { setDaemonSetting: (string, boolean | string | Price) => void, - setClientSetting: (string, boolean | string | Price) => void, + setClientSetting: (string, boolean | string | number | Price) => void, clearCache: () => Promise, getThemes: () => void, daemonSettings: DaemonSettings, @@ -32,6 +32,7 @@ type Props = { themes: Array, automaticDarkModeEnabled: boolean, autoplay: boolean, + resultCount: number, }; type State = { @@ -57,6 +58,7 @@ class SettingsPage extends React.PureComponent { (this: any).onAutoplayChange = this.onAutoplayChange.bind(this); (this: any).clearCache = this.clearCache.bind(this); // (this: any).onLanguageChange = this.onLanguageChange.bind(this) + (this: any).onSearchResultCountChange = this.onSearchResultCountChange.bind(this); } componentDidMount() { @@ -117,6 +119,11 @@ class SettingsPage extends React.PureComponent { this.props.setClientSetting(settings.SHOW_UNAVAILABLE, event.target.checked); } + onSearchResultCountChange(event: SyntheticInputEvent<*>) { + const count = event.target.value; + this.props.setClientSetting(settings.RESULT_COUNT, count); + } + setDaemonSetting(name: string, value: boolean | string | Price) { this.props.setDaemonSetting(name, value); } @@ -145,6 +152,7 @@ class SettingsPage extends React.PureComponent { themes, automaticDarkModeEnabled, autoplay, + resultCount, } = this.props; const noDaemonSettings = !daemonSettings || Object.keys(daemonSettings).length === 0; @@ -253,13 +261,6 @@ class SettingsPage extends React.PureComponent { checked={autoplay} postfix={__('Autoplay media files')} /> - { )} /> +
+
{__('Search Settings')}
+ + +
{__('Share Diagnostic Data')}
Date: Wed, 20 Jun 2018 19:08:51 -0400 Subject: [PATCH 10/13] moved search settings to the search page. --- src/renderer/page/search/index.js | 10 +++++-- src/renderer/page/search/view.jsx | 43 ++++++++++++++++++++++++++++- src/renderer/page/settings/index.js | 2 -- src/renderer/page/settings/view.jsx | 34 ----------------------- 4 files changed, 50 insertions(+), 39 deletions(-) diff --git a/src/renderer/page/search/index.js b/src/renderer/page/search/index.js index f640f75f0..3745f961c 100644 --- a/src/renderer/page/search/index.js +++ b/src/renderer/page/search/index.js @@ -1,16 +1,22 @@ import { connect } from 'react-redux'; -import { selectIsSearching, doUpdateSearchQuery, makeSelectCurrentParam } from 'lbry-redux'; +import * as settings from 'constants/settings'; +import { selectIsSearching, selectSearchValue, doUpdateSearchQuery } from 'lbry-redux'; +import { doSetClientSetting } from 'redux/actions/settings'; import { doNavigate } from 'redux/actions/navigation'; +import { makeSelectClientSetting } from 'redux/selectors/settings'; import SearchPage from './view'; const select = state => ({ isSearching: selectIsSearching(state), - query: makeSelectCurrentParam('query')(state), + query: selectSearchValue(state), + showUnavailable: makeSelectClientSetting(settings.SHOW_UNAVAILABLE)(state), + resultCount: makeSelectClientSetting(settings.RESULT_COUNT)(state), }); const perform = dispatch => ({ navigate: path => dispatch(doNavigate(path)), updateSearchQuery: query => dispatch(doUpdateSearchQuery(query)), + setClientSetting: (key, value) => dispatch(doSetClientSetting(key, value)), }); export default connect( diff --git a/src/renderer/page/search/view.jsx b/src/renderer/page/search/view.jsx index b28882adc..dd909d8b3 100644 --- a/src/renderer/page/search/view.jsx +++ b/src/renderer/page/search/view.jsx @@ -1,6 +1,8 @@ // @flow import * as React from 'react'; +import * as settings from 'constants/settings'; import { isURIValid, normalizeURI } from 'lbry-redux'; +import { FormField, FormRow } from 'component/common/form'; import FileTile from 'component/fileTile'; import FileListSearch from 'component/fileListSearch'; import ToolTip from 'component/common/tooltip'; @@ -10,13 +12,52 @@ import * as icons from 'constants/icons'; type Props = { query: ?string, + showUnavailable: boolean, + resultCount: number, + setClientSetting: (string, number | boolean) => void, }; class SearchPage extends React.PureComponent { + constructor() { + super(); + + (this: any).onShowUnavailableChange = this.onShowUnavailableChange.bind(this); + (this: any).onSearchResultCountChange = this.onSearchResultCountChange.bind(this); + } + + onSearchResultCountChange(event: SyntheticInputEvent<*>) { + const count = event.target.value; + this.props.setClientSetting(settings.RESULT_COUNT, count); + } + + onShowUnavailableChange(event: SyntheticInputEvent<*>) { + this.props.setClientSetting(settings.SHOW_UNAVAILABLE, event.target.checked); + } + render() { - const { query } = this.props; + const { query, resultCount, showUnavailable } = this.props; return ( + + + + + + {isURIValid(query) && (
diff --git a/src/renderer/page/settings/index.js b/src/renderer/page/settings/index.js index 6368358da..387b0fb88 100644 --- a/src/renderer/page/settings/index.js +++ b/src/renderer/page/settings/index.js @@ -18,7 +18,6 @@ import SettingsPage from './view'; const select = state => ({ daemonSettings: selectDaemonSettings(state), showNsfw: makeSelectClientSetting(settings.SHOW_NSFW)(state), - showUnavailable: makeSelectClientSetting(settings.SHOW_UNAVAILABLE)(state), instantPurchaseEnabled: makeSelectClientSetting(settings.INSTANT_PURCHASE_ENABLED)(state), instantPurchaseMax: makeSelectClientSetting(settings.INSTANT_PURCHASE_MAX)(state), currentTheme: makeSelectClientSetting(settings.THEME)(state), @@ -27,7 +26,6 @@ const select = state => ({ languages: selectLanguages(state), automaticDarkModeEnabled: makeSelectClientSetting(settings.AUTOMATIC_DARK_MODE_ENABLED)(state), autoplay: makeSelectClientSetting(settings.AUTOPLAY)(state), - resultCount: makeSelectClientSetting(settings.RESULT_COUNT)(state), }); const perform = dispatch => ({ diff --git a/src/renderer/page/settings/view.jsx b/src/renderer/page/settings/view.jsx index c76fefa1a..1bed3cf47 100644 --- a/src/renderer/page/settings/view.jsx +++ b/src/renderer/page/settings/view.jsx @@ -27,12 +27,10 @@ type Props = { showNsfw: boolean, instantPurchaseEnabled: boolean, instantPurchaseMax: Price, - showUnavailable: boolean, currentTheme: string, themes: Array, automaticDarkModeEnabled: boolean, autoplay: boolean, - resultCount: number, }; type State = { @@ -51,14 +49,12 @@ class SettingsPage extends React.PureComponent { (this: any).onKeyFeeChange = this.onKeyFeeChange.bind(this); (this: any).onInstantPurchaseMaxChange = this.onInstantPurchaseMaxChange.bind(this); (this: any).onShowNsfwChange = this.onShowNsfwChange.bind(this); - (this: any).onShowUnavailableChange = this.onShowUnavailableChange.bind(this); (this: any).onShareDataChange = this.onShareDataChange.bind(this); (this: any).onThemeChange = this.onThemeChange.bind(this); (this: any).onAutomaticDarkModeChange = this.onAutomaticDarkModeChange.bind(this); (this: any).onAutoplayChange = this.onAutoplayChange.bind(this); (this: any).clearCache = this.clearCache.bind(this); // (this: any).onLanguageChange = this.onLanguageChange.bind(this) - (this: any).onSearchResultCountChange = this.onSearchResultCountChange.bind(this); } componentDidMount() { @@ -115,15 +111,6 @@ class SettingsPage extends React.PureComponent { this.props.setClientSetting(settings.SHOW_NSFW, event.target.checked); } - onShowUnavailableChange(event: SyntheticInputEvent<*>) { - this.props.setClientSetting(settings.SHOW_UNAVAILABLE, event.target.checked); - } - - onSearchResultCountChange(event: SyntheticInputEvent<*>) { - const count = event.target.value; - this.props.setClientSetting(settings.RESULT_COUNT, count); - } - setDaemonSetting(name: string, value: boolean | string | Price) { this.props.setDaemonSetting(name, value); } @@ -147,12 +134,10 @@ class SettingsPage extends React.PureComponent { showNsfw, instantPurchaseEnabled, instantPurchaseMax, - showUnavailable, currentTheme, themes, automaticDarkModeEnabled, autoplay, - resultCount, } = this.props; const noDaemonSettings = !daemonSettings || Object.keys(daemonSettings).length === 0; @@ -272,25 +257,6 @@ class SettingsPage extends React.PureComponent { )} />
-
-
{__('Search Settings')}
- - -
{__('Share Diagnostic Data')}
Date: Fri, 22 Jun 2018 15:18:08 -0400 Subject: [PATCH 11/13] set default search results to 50 --- src/renderer/component/fileListSearch/index.js | 1 - src/renderer/page/search/view.jsx | 6 +++--- src/renderer/redux/reducers/settings.js | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/renderer/component/fileListSearch/index.js b/src/renderer/component/fileListSearch/index.js index 5b6d96713..5f4011e2d 100644 --- a/src/renderer/component/fileListSearch/index.js +++ b/src/renderer/component/fileListSearch/index.js @@ -6,7 +6,6 @@ const select = (state, props) => ({ uris: makeSelectSearchUris(props.query)(state), downloadUris: selectSearchDownloadUris(props.query)(state), isSearching: selectIsSearching(state), - resultCount: makeSelectClientSetting(settings.RESULT_COUNT)(state), }); const perform = () => ({}); diff --git a/src/renderer/page/search/view.jsx b/src/renderer/page/search/view.jsx index dd909d8b3..c2514a37b 100644 --- a/src/renderer/page/search/view.jsx +++ b/src/renderer/page/search/view.jsx @@ -26,7 +26,7 @@ class SearchPage extends React.PureComponent { } onSearchResultCountChange(event: SyntheticInputEvent<*>) { - const count = event.target.value; + const count = Number(event.target.value); this.props.setClientSetting(settings.RESULT_COUNT, count); } @@ -43,7 +43,7 @@ class SearchPage extends React.PureComponent { { name="show_unavailable" onChange={this.onShowUnavailableChange} checked={showUnavailable} - postfix={__('Show unavailable content')} + postfix={__('Include unavailable content')} /> diff --git a/src/renderer/redux/reducers/settings.js b/src/renderer/redux/reducers/settings.js index f3696b625..383b76161 100644 --- a/src/renderer/redux/reducers/settings.js +++ b/src/renderer/redux/reducers/settings.js @@ -25,7 +25,7 @@ const defaultState = { themes: getLocalStorageSetting(SETTINGS.THEMES, []), automaticDarkModeEnabled: getLocalStorageSetting(SETTINGS.AUTOMATIC_DARK_MODE_ENABLED, false), autoplay: getLocalStorageSetting(SETTINGS.AUTOPLAY, false), - resultCount: Number(getLocalStorageSetting(SETTINGS.RESULT_COUNT, 10)), + resultCount: Number(getLocalStorageSetting(SETTINGS.RESULT_COUNT, 50)), }, isNight: false, languages: {}, -- 2.45.3 From 1a9c2c3d17a0c51969c1bdb0a7d13683cfd42a3e Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Fri, 22 Jun 2018 15:22:28 -0400 Subject: [PATCH 12/13] use query from navigation path instead of active search query for search --- src/renderer/page/search/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/page/search/index.js b/src/renderer/page/search/index.js index 3745f961c..d47469617 100644 --- a/src/renderer/page/search/index.js +++ b/src/renderer/page/search/index.js @@ -1,6 +1,6 @@ import { connect } from 'react-redux'; import * as settings from 'constants/settings'; -import { selectIsSearching, selectSearchValue, doUpdateSearchQuery } from 'lbry-redux'; +import { selectIsSearching, makeSelectCurrentParam, doUpdateSearchQuery } from 'lbry-redux'; import { doSetClientSetting } from 'redux/actions/settings'; import { doNavigate } from 'redux/actions/navigation'; import { makeSelectClientSetting } from 'redux/selectors/settings'; @@ -8,7 +8,7 @@ import SearchPage from './view'; const select = state => ({ isSearching: selectIsSearching(state), - query: selectSearchValue(state), + query: makeSelectCurrentParam('query')(state), showUnavailable: makeSelectClientSetting(settings.SHOW_UNAVAILABLE)(state), resultCount: makeSelectClientSetting(settings.RESULT_COUNT)(state), }); -- 2.45.3 From 10913f98eac48d08bcf5f7a84e270a3f6882ed4a Mon Sep 17 00:00:00 2001 From: btzr-io Date: Fri, 22 Jun 2018 14:29:56 -0600 Subject: [PATCH 13/13] fix conflicts - Merge master --- CHANGELOG.md | 19 ++++---- .../component/common/file-exporter.jsx | 25 ++++++----- .../component/common/file-selector.jsx | 1 + .../common/form-components/form-field.jsx | 1 + src/renderer/component/externalLink/view.jsx | 3 +- .../component/fileListSearch/view.jsx | 1 + src/renderer/component/wunderbar/index.js | 7 ++- src/renderer/component/wunderbar/view.jsx | 7 +-- src/renderer/constants/icons.js | 1 - src/renderer/constants/settings.js | 1 + src/renderer/page/channel/view.jsx | 5 ++- src/renderer/page/search/index.js | 8 +++- src/renderer/page/search/view.jsx | 43 ++++++++++++++++++- src/renderer/page/settings/index.js | 6 ++- src/renderer/page/settings/view.jsx | 16 +------ src/renderer/redux/reducers/settings.js | 1 + src/renderer/scss/component/_card.scss | 1 + src/renderer/scss/component/_form-field.scss | 5 +++ src/renderer/scss/component/_pagination.scss | 8 ++-- 19 files changed, 107 insertions(+), 52 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9fe830fe..34d050f5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,7 +22,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). * Pre-fill publish URL after clicking "Put something here" link ([#1303](https://github.com/lbryio/lbry-app/pull/1303)) * Danger JS to automate code reviews ([#1289](https://github.com/lbryio/lbry-app/pull/1289)) * 'Go to page' input on channel pagination ([#1166](https://github.com/lbryio/lbry-app/pull/1166)) - + ### Changed * LBRY App UI Redesign 5.0 implemented including new theme, layout, and improved search mechanics ([#870](https://github.com/lbryio/lbry-app/pull/870)) and ([#1173](https://github.com/lbryio/lbry-app/pull/1173)) * Adapted dark mode to redesign ([#1269](https://github.com/lbryio/lbry-app/pull/1269)) @@ -32,7 +32,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). * Made font in price badge larger ([#1420](https://github.com/lbryio/lbry-app/pull/1420)) * Move rewards logic to interal api ([#1509](https://github.com/lbryio/lbry-app/pull/1509)) * Narrative about Feature Request on Help Page and Report Page ([#1551](https://github.com/lbryio/lbry-app/pull/1551)) - + ### Fixed * Create channel and publish immediately([#1481](https://github.com/lbryio/lbry-app/pull/1481)) @@ -56,9 +56,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). * URI and outpoint not being passed properly to API ([#1494](https://github.com/lbryio/lbry-app/issues/1494)) * Incorrect markdown preview on url with parentheses ([#1570](https://github.com/lbryio/lbry-app/issues/1570)) * Fix Linux upgrade path and add manual installation note ([#1606](https://github.com/lbryio/lbry-app/issues/1606)) - - - + * Fix can type in unfocused fields while publishing without selecting file ([#1456](https://github.com/lbryio/lbry-app/issues/1456)) + * Fix navigation button resulting incorrect page designation ([#1502](https://github.com/lbryio/lbry-app/issues/1502)) + * Fix shouldn't allow to open multiple export and choose file dialogs ([#1175](https://github.com/lbryio/lbry-app/issues/1175)) + + + ## [0.21.6] - 2018-06-05 ### Fixed @@ -79,9 +82,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). ### Changed * Rewards now rely on API data ([#1329](https://github.com/lbryio/lbry-app/issues/1329)) - - - + + + ## [0.21.4] - 2018-05-10 ### Changed diff --git a/src/renderer/component/common/file-exporter.jsx b/src/renderer/component/common/file-exporter.jsx index 8ab48e05c..fe32fa1d4 100644 --- a/src/renderer/component/common/file-exporter.jsx +++ b/src/renderer/component/common/file-exporter.jsx @@ -2,7 +2,6 @@ import fs from 'fs'; import path from 'path'; import React from 'react'; -import PropTypes from 'prop-types'; import Button from 'component/button'; import parseData from 'util/parseData'; import * as icons from 'constants/icons'; @@ -56,16 +55,20 @@ class FileExporter extends React.PureComponent { ], }; - remote.dialog.showSaveDialog(options, filename => { - // User hit cancel so do nothing: - if (!filename) return; - // Get extension and remove initial dot - const format = path.extname(filename).replace(/\./g, ''); - // Parse data to string with the chosen format - const parsed = parseData(data, format, filters); - // Write file - parsed && this.handleFileCreation(filename, parsed); - }); + remote.dialog.showSaveDialog( + remote.getCurrentWindow(), + options, + filename => { + // User hit cancel so do nothing: + if (!filename) return; + // Get extension and remove initial dot + const format = path.extname(filename).replace(/\./g, ''); + // Parse data to string with the chosen format + const parsed = parseData(data, format, filters); + // Write file + parsed && this.handleFileCreation(filename, parsed); + } + ); } render() { diff --git a/src/renderer/component/common/file-selector.jsx b/src/renderer/component/common/file-selector.jsx index d07d52dbb..ec19394e1 100644 --- a/src/renderer/component/common/file-selector.jsx +++ b/src/renderer/component/common/file-selector.jsx @@ -25,6 +25,7 @@ class FileSelector extends React.PureComponent { handleButtonClick() { remote.dialog.showOpenDialog( + remote.getCurrentWindow(), { properties: this.props.type === 'file' ? ['openFile'] : ['openDirectory', 'createDirectory'], diff --git a/src/renderer/component/common/form-components/form-field.jsx b/src/renderer/component/common/form-components/form-field.jsx index 3a530ea64..0b23e49e8 100644 --- a/src/renderer/component/common/form-components/form-field.jsx +++ b/src/renderer/component/common/form-components/form-field.jsx @@ -82,6 +82,7 @@ export class FormField extends React.PureComponent {
{(label || errorMessage) && ( diff --git a/src/renderer/component/externalLink/view.jsx b/src/renderer/component/externalLink/view.jsx index 70ce111fe..e42197432 100644 --- a/src/renderer/component/externalLink/view.jsx +++ b/src/renderer/component/externalLink/view.jsx @@ -33,7 +33,7 @@ class ExternalLink extends React.PureComponent { element = (