From 2b9561f0c098ccf6d4737843950c5dba817e6724 Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Mon, 8 Jan 2018 17:15:44 -0800 Subject: [PATCH] Revert "Redesign groundwork, homepage, search" --- .flowconfig | 1 - flow-typed/react-modal.js | 3 - package.json | 1 - src/renderer/component/app/view.jsx | 61 +- src/renderer/component/cardMedia/view.jsx | 44 +- src/renderer/component/common.js | 4 - .../component/common/category-list.jsx | 255 -------- src/renderer/component/common/icon.jsx | 43 -- src/renderer/component/common/tooltip.jsx | 57 -- src/renderer/component/fileCard/view.jsx | 120 ++-- .../component/fileDownloadLink/view.jsx | 2 +- src/renderer/component/fileTile/view.jsx | 4 +- src/renderer/component/form.js | 2 +- src/renderer/component/header/view.jsx | 127 ++-- src/renderer/component/icon/index.js | 5 + src/renderer/component/icon/view.jsx | 50 ++ src/renderer/component/inviteList/view.jsx | 2 +- src/renderer/component/link/view.jsx | 111 ++-- src/renderer/component/menu.js | 2 +- src/renderer/component/page/index.js | 9 - src/renderer/component/page/view.jsx | 26 - src/renderer/component/tooltip.js | 54 ++ src/renderer/component/uriIndicator/view.jsx | 54 +- src/renderer/component/wunderbar/index.js | 10 +- .../wunderbar/internal/autocomplete.jsx | 601 ------------------ src/renderer/component/wunderbar/view.jsx | 236 ++++--- src/renderer/constants/action_types.js | 10 +- .../renderer/flow-typed}/reselect.js | 0 src/renderer/index.js | 6 +- src/renderer/page/channel/view.jsx | 7 +- src/renderer/page/discover/view.jsx | 250 +++++++- src/renderer/page/file/view.jsx | 85 ++- src/renderer/page/help/view.jsx | 2 +- src/renderer/page/search/view.jsx | 14 +- src/renderer/page/show/view.jsx | 16 +- src/renderer/page/subscriptions/view.jsx | 6 +- src/renderer/redux/actions/search.js | 170 ++--- src/renderer/redux/reducers/search.js | 87 +-- src/renderer/redux/selectors/navigation.js | 35 +- src/renderer/redux/selectors/search.js | 55 +- src/renderer/scss/_gui.scss | 180 +++--- src/renderer/scss/_icons.scss | 10 - src/renderer/scss/_vars.scss | 31 +- src/renderer/scss/component/_button.scss | 125 ++-- src/renderer/scss/component/_card.scss | 484 ++++++++------ .../scss/component/_channel-indicator.scss | 6 + src/renderer/scss/component/_header.scss | 92 +-- src/renderer/scss/component/_tooltip.scss | 10 +- .../metropolis/Metropolis-BlackItalic.woff2 | Bin 17292 -> 0 bytes static/font/metropolis/Metropolis-Bold.woff2 | Bin 16728 -> 0 bytes .../metropolis/Metropolis-BoldItalic.woff2 | Bin 17268 -> 0 bytes .../metropolis/Metropolis-ExtraBold.woff2 | Bin 16452 -> 0 bytes .../Metropolis-ExtraBoldItalic.woff2 | Bin 17424 -> 0 bytes .../metropolis/Metropolis-ExtraLight.woff2 | Bin 16400 -> 0 bytes .../Metropolis-ExtraLightItalic.woff2 | Bin 17392 -> 0 bytes static/font/metropolis/Metropolis-Light.woff2 | Bin 16564 -> 0 bytes .../metropolis/Metropolis-LightItalic.woff2 | Bin 17380 -> 0 bytes .../font/metropolis/Metropolis-Medium.woff2 | Bin 16496 -> 0 bytes .../metropolis/Metropolis-MediumItalic.woff2 | Bin 17536 -> 0 bytes .../font/metropolis/Metropolis-Regular.woff2 | Bin 16388 -> 0 bytes .../metropolis/Metropolis-RegularItalic.woff2 | Bin 17332 -> 0 bytes .../font/metropolis/Metropolis-SemiBold.woff2 | Bin 16576 -> 0 bytes .../Metropolis-SemiBoldItalic.woff2 | Bin 17372 -> 0 bytes static/font/metropolis/Metropolis-Thin.woff2 | Bin 16080 -> 0 bytes .../metropolis/Metropolis-ThinItalic.woff2 | Bin 17144 -> 0 bytes yarn.lock | 4 - 66 files changed, 1466 insertions(+), 2103 deletions(-) delete mode 100644 flow-typed/react-modal.js delete mode 100644 src/renderer/component/common/category-list.jsx delete mode 100644 src/renderer/component/common/icon.jsx delete mode 100644 src/renderer/component/common/tooltip.jsx create mode 100644 src/renderer/component/icon/index.js create mode 100644 src/renderer/component/icon/view.jsx delete mode 100644 src/renderer/component/page/index.js delete mode 100644 src/renderer/component/page/view.jsx create mode 100644 src/renderer/component/tooltip.js delete mode 100644 src/renderer/component/wunderbar/internal/autocomplete.jsx rename {flow-typed => src/renderer/flow-typed}/reselect.js (100%) delete mode 100755 static/font/metropolis/Metropolis-BlackItalic.woff2 delete mode 100755 static/font/metropolis/Metropolis-Bold.woff2 delete mode 100755 static/font/metropolis/Metropolis-BoldItalic.woff2 delete mode 100755 static/font/metropolis/Metropolis-ExtraBold.woff2 delete mode 100755 static/font/metropolis/Metropolis-ExtraBoldItalic.woff2 delete mode 100755 static/font/metropolis/Metropolis-ExtraLight.woff2 delete mode 100755 static/font/metropolis/Metropolis-ExtraLightItalic.woff2 delete mode 100755 static/font/metropolis/Metropolis-Light.woff2 delete mode 100755 static/font/metropolis/Metropolis-LightItalic.woff2 delete mode 100755 static/font/metropolis/Metropolis-Medium.woff2 delete mode 100755 static/font/metropolis/Metropolis-MediumItalic.woff2 delete mode 100755 static/font/metropolis/Metropolis-Regular.woff2 delete mode 100755 static/font/metropolis/Metropolis-RegularItalic.woff2 delete mode 100755 static/font/metropolis/Metropolis-SemiBold.woff2 delete mode 100755 static/font/metropolis/Metropolis-SemiBoldItalic.woff2 delete mode 100755 static/font/metropolis/Metropolis-Thin.woff2 delete mode 100755 static/font/metropolis/Metropolis-ThinItalic.woff2 diff --git a/.flowconfig b/.flowconfig index 5f5dfd123..899a096e6 100644 --- a/.flowconfig +++ b/.flowconfig @@ -18,6 +18,5 @@ module.name_mapper='^types\(.*\)$' -> '/src/renderer/types\1' module.name_mapper='^component\(.*\)$' -> '/src/renderer/component\1' module.name_mapper='^page\(.*\)$' -> '/src/renderer/page\1' module.name_mapper='^lbry\(.*\)$' -> '/src/renderer/lbry\1' -module.name_mapper='^modal\(.*\)$' -> '/src/renderer/modal\1' [strict] diff --git a/flow-typed/react-modal.js b/flow-typed/react-modal.js deleted file mode 100644 index 17766e9f0..000000000 --- a/flow-typed/react-modal.js +++ /dev/null @@ -1,3 +0,0 @@ -declare module 'react-modal' { - declare module.exports: any; -} diff --git a/package.json b/package.json index 07d4e84fd..2e61b99cc 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,6 @@ "amplitude-js": "^4.0.0", "bluebird": "^3.5.1", "classnames": "^2.2.5", - "dom-scroll-into-view": "^1.2.1", "electron-dl": "^1.6.0", "formik": "^0.10.4", "from2": "^2.3.0", diff --git a/src/renderer/component/app/view.jsx b/src/renderer/component/app/view.jsx index 240db13e2..fb43b6574 100644 --- a/src/renderer/component/app/view.jsx +++ b/src/renderer/component/app/view.jsx @@ -1,4 +1,3 @@ -// @flow import React from 'react'; import Router from 'component/router/index'; import Header from 'component/header'; @@ -7,83 +6,61 @@ import ModalRouter from 'modal/modalRouter'; import ReactModal from 'react-modal'; import throttle from 'util/throttle'; -type Props = { - alertError: (string | {}) => void, - recordScroll: number => void, - currentStackIndex: number, - currentPageAttributes: { path: string, scrollY: number }, - pageTitle: ?string, -}; - -class App extends React.PureComponent { +class App extends React.PureComponent { constructor() { super(); this.mainContent = undefined; - (this: any).scrollListener = this.scrollListener.bind(this); } componentWillMount() { const { alertError } = this.props; - // TODO: create type for this object - // it lives in jsonrpc.js - document.addEventListener('unhandledError', (event: any) => { + document.addEventListener('unhandledError', event => { alertError(event.detail); }); } componentDidMount() { + const { recordScroll } = this.props; const mainContent = document.getElementById('main-content'); this.mainContent = mainContent; - if (this.mainContent) { - this.mainContent.addEventListener('scroll', throttle(this.scrollListener, 750)); - } + const scrollListener = () => recordScroll(this.mainContent.scrollTop); + + this.mainContent.addEventListener('scroll', throttle(scrollListener, 750)); ReactModal.setAppElement('#window'); // fuck this } - componentWillReceiveProps(props: Props) { - const { pageTitle } = props; - this.setTitleFromProps(pageTitle); + componentWillUnmount() { + this.mainContent.removeEventListener('scroll', this.scrollListener); } - componentDidUpdate(prevProps: Props) { + componentWillReceiveProps(props) { + this.setTitleFromProps(props); + } + + componentDidUpdate(prevProps) { const { currentStackIndex: prevStackIndex } = prevProps; const { currentStackIndex, currentPageAttributes } = this.props; - if (this.mainContent && currentStackIndex !== prevStackIndex) { + if (currentStackIndex !== prevStackIndex) { this.mainContent.scrollTop = currentPageAttributes.scrollY || 0; } } - componentWillUnmount() { - if (this.mainContent) { - // having issues with this - // $FlowFixMe - this.mainContent.removeEventListener('scroll'); - } + setTitleFromProps(props) { + window.document.title = props.pageTitle || 'LBRY'; } - setTitleFromProps = (title: ?string) => { - window.document.title = title || 'LBRY'; - }; - - scrollListener() { - const { recordScroll } = this.props; - if (this.mainContent) { - recordScroll(this.mainContent.scrollTop); - } - } - - mainContent: ?HTMLElement; - render() { return (
- +
+ +
); diff --git a/src/renderer/component/cardMedia/view.jsx b/src/renderer/component/cardMedia/view.jsx index 34feddccb..06f80f1d7 100644 --- a/src/renderer/component/cardMedia/view.jsx +++ b/src/renderer/component/cardMedia/view.jsx @@ -1,18 +1,48 @@ -// @flow import React from 'react'; -type Props = { - thumbnail: ?string, // externally sourced image -}; +class CardMedia extends React.PureComponent { + static AUTO_THUMB_CLASSES = [ + 'purple', + 'red', + 'pink', + 'indigo', + 'blue', + 'light-blue', + 'cyan', + 'teal', + 'green', + 'yellow', + 'orange', + ]; + + componentWillMount() { + this.setState({ + autoThumbClass: + CardMedia.AUTO_THUMB_CLASSES[ + Math.floor(Math.random() * CardMedia.AUTO_THUMB_CLASSES.length) + ], + }); + } -class CardMedia extends React.PureComponent { render() { - const { thumbnail } = this.props; + const { title, thumbnail } = this.props; + const atClass = this.state.autoThumbClass; + if (thumbnail) { return
; } - return
LBRY
; + return ( +
+
+ {title && + title + .replace(/\s+/g, '') + .substring(0, Math.min(title.replace(' ', '').length, 5)) + .toUpperCase()} +
+
+ ); } } diff --git a/src/renderer/component/common.js b/src/renderer/component/common.js index 687c6e9da..629d09f57 100644 --- a/src/renderer/component/common.js +++ b/src/renderer/component/common.js @@ -1,6 +1,3 @@ -// just disabling the linter because this file shouldn't even exist -// will continue to move components over to /components/common/{comp} - sean -/* eslint-disable */ import React from 'react'; import PropTypes from 'prop-types'; import { formatCredits, formatFullPrice } from 'util/formatCredits'; @@ -173,4 +170,3 @@ export class Thumbnail extends React.PureComponent { ); } } -/* eslint-enable */ diff --git a/src/renderer/component/common/category-list.jsx b/src/renderer/component/common/category-list.jsx deleted file mode 100644 index 1f01ea921..000000000 --- a/src/renderer/component/common/category-list.jsx +++ /dev/null @@ -1,255 +0,0 @@ -// @flow -import React from 'react'; -import lbryuri from 'lbryuri'; -import ToolTip from 'component/common/tooltip'; -import FileCard from 'component/fileCard'; -import Button from 'component/link'; - -type Props = { - category: string, - names: Array, - categoryLink?: string, -}; - -type State = { - canScrollNext: boolean, - canScrollPrevious: boolean, -}; - -class CategoryList extends React.PureComponent { - constructor() { - super(); - - this.state = { - canScrollPrevious: false, - canScrollNext: false, - }; - - (this: any).handleScrollNext = this.handleScrollNext.bind(this); - (this: any).handleScrollPrevious = this.handleScrollPrevious.bind(this); - this.rowItems = undefined; - } - - componentDidMount() { - const cardRow = this.rowItems; - if (cardRow) { - const cards = cardRow.getElementsByTagName('section'); - const lastCard = cards[cards.length - 1]; - const isCompletelyVisible = this.isCardVisible(lastCard); - - if (!isCompletelyVisible) { - // not sure how we can avoid doing this - /* eslint-disable react/no-did-mount-set-state */ - this.setState({ - canScrollNext: true, - }); - /* eslint-enable react/no-did-mount-set-state */ - } - } - } - - rowItems: ?HTMLDivElement; - - handleScroll(cardRow: HTMLDivElement, scrollTarget: number) { - const cards = cardRow.getElementsByTagName('section'); - const animationCallback = () => { - const firstCard = cards[0]; - const lastCard = cards[cards.length - 1]; - const firstCardVisible = this.isCardVisible(firstCard); - const lastCardVisible = this.isCardVisible(lastCard); - this.setState({ - canScrollNext: !lastCardVisible, - canScrollPrevious: !firstCardVisible, - }); - }; - - const currentScrollLeft = cardRow.scrollLeft; - const direction = currentScrollLeft > scrollTarget ? 'left' : 'right'; - this.scrollCardsAnimated(cardRow, scrollTarget, direction, animationCallback); - } - - scrollCardsAnimated = ( - cardRow: HTMLDivElement, - scrollTarget: number, - direction: string, - callback: () => any - ) => { - let start; - const step = timestamp => { - if (!start) start = timestamp; - - const currentLeftVal = cardRow.scrollLeft; - - let newTarget; - let shouldContinue; - let progress = currentLeftVal; - - if (direction === 'right') { - progress += timestamp - start; - newTarget = Math.min(progress, scrollTarget); - shouldContinue = newTarget < scrollTarget; - } else { - progress -= timestamp - start; - newTarget = Math.max(progress, scrollTarget); - shouldContinue = newTarget > scrollTarget; - } - - cardRow.scrollLeft = newTarget; // eslint-disable-line no-param-reassign - - if (shouldContinue) { - window.requestAnimationFrame(step); - } else { - callback(); - } - }; - - window.requestAnimationFrame(step); - }; - - // check if a card is fully visible horizontally - isCardVisible = (section: HTMLElement) => { - const rect = section.getBoundingClientRect(); - const isVisible = rect.left >= 0 && rect.right <= window.innerWidth; - return isVisible; - }; - - handleScrollNext() { - const cardRow = this.rowItems; - if (cardRow) { - const cards = cardRow.getElementsByTagName('section'); - - // loop over items until we find one that is on the screen - // continue searching until a card isn't fully visible, this is the new target - let firstFullVisibleCard; - let firstSemiVisibleCard; - - for (let i = 0; i < cards.length; i += 1) { - const currentCardVisible = this.isCardVisible(cards[i]); - - if (firstFullVisibleCard && !currentCardVisible) { - firstSemiVisibleCard = cards[i]; - break; - } else if (currentCardVisible) { - [firstFullVisibleCard] = cards; - } - } - - if (firstFullVisibleCard && firstSemiVisibleCard) { - const scrollTarget = firstSemiVisibleCard.offsetLeft - firstFullVisibleCard.offsetLeft; - this.handleScroll(cardRow, scrollTarget); - } - } - } - - handleScrollPrevious() { - const cardRow = this.rowItems; - if (cardRow) { - const cards = cardRow.getElementsByTagName('section'); - - let hasFoundCard; - let numberOfCardsThatCanFit = 0; - - // loop starting at the end until we find a visible card - // then count to find how many cards can fit on the screen - for (let i = cards.length - 1; i >= 0; i -= 1) { - const currentCard = cards[i]; - const isCurrentCardVisible = this.isCardVisible(currentCard); - - if (isCurrentCardVisible) { - if (!hasFoundCard) { - hasFoundCard = true; - } - - numberOfCardsThatCanFit += 1; - } else if (hasFoundCard) { - // this card is off the screen to the left - // we know how many cards can fit on a screen - // find the new target and scroll - const firstCardOffsetLeft = cards[0].offsetLeft; - const cardIndexToScrollTo = i + 1 - numberOfCardsThatCanFit; - const newFirstCard = cards[cardIndexToScrollTo]; - - let scrollTarget; - if (newFirstCard) { - scrollTarget = newFirstCard.offsetLeft; - } else { - // more cards can fit on the screen than are currently hidden - // just scroll to the first card - scrollTarget = cards[0].offsetLeft; - } - - scrollTarget -= firstCardOffsetLeft; // to play nice with the margins - - this.handleScroll(cardRow, scrollTarget); - break; - } - } - } - } - - render() { - const { category, names, categoryLink } = this.props; - const { canScrollNext, canScrollPrevious } = this.state; - - // The lint was throwing an error saying we should use
-
-
- -
{ - this.rowItems = ref; - }} - className="card-row__scrollhouse" - > - {names && - names.map(name => ( - - ))} -
- - ); - } -} - -export default CategoryList; diff --git a/src/renderer/component/common/icon.jsx b/src/renderer/component/common/icon.jsx deleted file mode 100644 index 3e261d21b..000000000 --- a/src/renderer/component/common/icon.jsx +++ /dev/null @@ -1,43 +0,0 @@ -// @flow -import React from 'react'; -import classnames from 'classnames'; -import * as icons from 'constants/icons'; - -type Props = { - icon: string, - fixed?: boolean, - padded?: boolean, -}; - -class Icon extends React.PureComponent { - getIconTitle() { - const { icon } = this.props; - - switch (icon) { - case icons.FEATURED: - return __('Watch this and earn rewards.'); - case icons.LOCAL: - return __('You have a copy of this file.'); - default: - return ''; - } - } - - render() { - const { icon, fixed, padded } = this.props; - const iconClassName = icon.startsWith('icon-') ? icon : `icon-${icon}`; - const title = this.getIconTitle(); - - const spanClassName = classnames( - { - 'icon--fixed-width': fixed, - 'icon--padded': padded, - }, - iconClassName - ); - - return ; - } -} - -export default Icon; diff --git a/src/renderer/component/common/tooltip.jsx b/src/renderer/component/common/tooltip.jsx deleted file mode 100644 index 942ac73be..000000000 --- a/src/renderer/component/common/tooltip.jsx +++ /dev/null @@ -1,57 +0,0 @@ -// @flow -import React from 'react'; -import classnames from 'classnames'; -import Icon from 'component/common/icon'; -import Button from 'component/link'; - -type Props = { - body: string, - label: string, -}; - -type State = { - showTooltip: boolean, -}; - -class ToolTip extends React.PureComponent { - constructor(props: Props) { - super(props); - - this.state = { - showTooltip: false, - }; - - (this: any).handleClick = this.handleClick.bind(this); - } - - handleClick() { - const { showTooltip } = this.state; - - if (!showTooltip) { - document.addEventListener('click', this.handleClick); - } else { - document.removeEventListener('click', this.handleClick); - } - - this.setState({ - showTooltip: !showTooltip, - }); - } - - render() { - const { label, body } = this.props; - const { showTooltip } = this.state; - - return ( - - -
{body}
-
- ); - } -} - -export default ToolTip; diff --git a/src/renderer/component/fileCard/view.jsx b/src/renderer/component/fileCard/view.jsx index a3c8cc249..e38bf06c2 100644 --- a/src/renderer/component/fileCard/view.jsx +++ b/src/renderer/component/fileCard/view.jsx @@ -1,101 +1,111 @@ -// @flow import React from 'react'; -import lbryuri from 'lbryuri'; +import lbryuri from 'lbryuri.js'; import CardMedia from 'component/cardMedia'; +import Link from 'component/link'; import { TruncatedText } from 'component/common'; -import Icon from 'component/common/icon'; +import Icon from 'component/icon'; import FilePrice from 'component/filePrice'; import UriIndicator from 'component/uriIndicator'; import NsfwOverlay from 'component/nsfwOverlay'; +import TruncatedMarkdown from 'component/truncatedMarkdown'; import * as icons from 'constants/icons'; -import classnames from 'classnames'; -// TODO: iron these out -type Props = { - isResolvingUri: boolean, - resolveUri: string => void, - uri: string, - claim: ?{ claim_id: string }, - fileInfo: ?{}, - metadata: ?{ nsfw: boolean, thumbnail: ?string }, - navigate: (string, ?{}) => void, - rewardedContentClaimIds: Array, - obscureNsfw: boolean, -}; +class FileCard extends React.PureComponent { + constructor(props) { + super(props); + + this.state = { + hovered: false, + }; + } -class FileCard extends React.PureComponent { componentWillMount() { this.resolve(this.props); } - componentWillReceiveProps(nextProps: Props) { + componentWillReceiveProps(nextProps) { this.resolve(nextProps); } - resolve = (props: Props) => { + resolve(props) { const { isResolvingUri, resolveUri, claim, uri } = props; if (!isResolvingUri && claim === undefined && uri) { resolveUri(uri); } - }; + } + + handleMouseOver() { + this.setState({ + hovered: true, + }); + } + + handleMouseOut() { + this.setState({ + hovered: false, + }); + } render() { const { claim, fileInfo, metadata, + isResolvingUri, navigate, rewardedContentClaimIds, - obscureNsfw, } = this.props; + const uri = lbryuri.normalize(this.props.uri); const title = metadata && metadata.title ? metadata.title : uri; const thumbnail = metadata && metadata.thumbnail ? metadata.thumbnail : null; - const shouldObscureNsfw = obscureNsfw && metadata && metadata.nsfw; + const obscureNsfw = this.props.obscureNsfw && metadata && metadata.nsfw; const isRewardContent = claim && rewardedContentClaimIds.includes(claim.claim_id); - // Come back to this on other pages - // let description = ''; - // if (isResolvingUri && !claim) { - // description = __('Loading...'); - // } else if (metadata && metadata.description) { - // description = metadata.description; - // } else if (claim === null) { - // description = __('This address contains no content.'); - // } + let description = ''; + if (isResolvingUri && !claim) { + description = __('Loading...'); + } else if (metadata && metadata.description) { + description = metadata.description; + } else if (claim === null) { + description = __('This address contains no content.'); + } - // We don't want to allow a click handler unless it's in focus - // I'll come back to this when I work on site-wide keyboard navigation - /* eslint-disable jsx-a11y/click-events-have-key-events */ return (
navigate('/show', { uri })} - className={classnames('card card--small card__link', { - 'card--obscured': shouldObscureNsfw, - })} + className={`card card--small card--link ${obscureNsfw ? 'card--obscured ' : ''}`} + onMouseEnter={this.handleMouseOver.bind(this)} + onMouseLeave={this.handleMouseOut.bind(this)} > - - -
-
- {title} -
- -
- -
- {isRewardContent && } - {fileInfo && } +
+ navigate('/show', { uri })} className="card__link"> + +
+
+ {title} +
+
+ + {' '} + {isRewardContent && }{' '} + {fileInfo && } + + + + +
-
+ + {/* Test for nizuka's design: should we remove description? +
+ {description} +
+ */}
- {obscureNsfw && } + {obscureNsfw && this.state.hovered && }
); - /* eslint-enable jsx-a11y/click-events-have-key-events */ } } diff --git a/src/renderer/component/fileDownloadLink/view.jsx b/src/renderer/component/fileDownloadLink/view.jsx index 71cf39018..57818da51 100644 --- a/src/renderer/component/fileDownloadLink/view.jsx +++ b/src/renderer/component/fileDownloadLink/view.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { BusyMessage } from 'component/common'; -import Icon from 'component/common/icon'; +import Icon from 'component/icon'; import Link from 'component/link'; class FileDownloadLink extends React.PureComponent { diff --git a/src/renderer/component/fileTile/view.jsx b/src/renderer/component/fileTile/view.jsx index ae1901485..231cfc293 100644 --- a/src/renderer/component/fileTile/view.jsx +++ b/src/renderer/component/fileTile/view.jsx @@ -1,4 +1,3 @@ -/* eslint-disable */ import React from 'react'; import * as icons from 'constants/icons'; import lbryuri from 'lbryuri.js'; @@ -6,7 +5,7 @@ import CardMedia from 'component/cardMedia'; import { TruncatedText } from 'component/common.js'; import FilePrice from 'component/filePrice'; import NsfwOverlay from 'component/nsfwOverlay'; -import Icon from 'component/common/icon'; +import Icon from 'component/icon'; class FileTile extends React.PureComponent { static SHOW_EMPTY_PUBLISH = 'publish'; @@ -134,4 +133,3 @@ class FileTile extends React.PureComponent { } export default FileTile; -/* eslint-enable */ diff --git a/src/renderer/component/form.js b/src/renderer/component/form.js index 889bec15a..c13619b1a 100644 --- a/src/renderer/component/form.js +++ b/src/renderer/component/form.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import FormField from 'component/formField'; -import Icon from 'component/common/icon'; +import Icon from 'component/icon'; let formFieldCounter = 0; diff --git a/src/renderer/component/header/view.jsx b/src/renderer/component/header/view.jsx index f8fc83890..c1289c889 100644 --- a/src/renderer/component/header/view.jsx +++ b/src/renderer/component/header/view.jsx @@ -1,20 +1,8 @@ -// @flow import React from 'react'; -import Button from 'component/link'; +import Link from 'component/link'; import WunderBar from 'component/wunderbar'; -type Props = { - balance: string, - back: any => void, - forward: any => void, - isBackDisabled: boolean, - isForwardDisabled: boolean, - isUpgradeAvailable: boolean, - navigate: any => void, - downloadUpgrade: any => void, -}; - -export const Header = (props: Props) => { +export const Header = props => { const { balance, back, @@ -27,58 +15,85 @@ export const Header = (props: Props) => { } = props; return ( ); }; diff --git a/src/renderer/component/icon/index.js b/src/renderer/component/icon/index.js new file mode 100644 index 000000000..81d61e58b --- /dev/null +++ b/src/renderer/component/icon/index.js @@ -0,0 +1,5 @@ +import React from 'react'; +import { connect } from 'react-redux'; +import Icon from './view'; + +export default connect(null, null)(Icon); diff --git a/src/renderer/component/icon/view.jsx b/src/renderer/component/icon/view.jsx new file mode 100644 index 000000000..795a1b241 --- /dev/null +++ b/src/renderer/component/icon/view.jsx @@ -0,0 +1,50 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import * as icons from 'constants/icons'; +import classnames from 'classnames'; + +export default class Icon extends React.PureComponent { + static propTypes = { + icon: PropTypes.string.isRequired, + fixed: PropTypes.bool, + }; + + static defaultProps = { + fixed: false, + }; + + getIconClass() { + const { icon } = this.props; + + return icon.startsWith('icon-') ? icon : `icon-${icon}`; + } + + getIconTitle() { + switch (this.props.icon) { + case icons.FEATURED: + return __('Watch this and earn rewards.'); + case icons.LOCAL: + return __('You have a copy of this file.'); + default: + return ''; + } + } + + render() { + const { icon, fixed, className, leftPad } = this.props; + const iconClass = this.getIconClass(); + const title = this.getIconTitle(); + + const spanClassName = classnames( + 'icon', + iconClass, + { + 'icon-fixed-width': fixed, + 'icon--left-pad': leftPad, + }, + className + ); + + return ; + } +} diff --git a/src/renderer/component/inviteList/view.jsx b/src/renderer/component/inviteList/view.jsx index 79b344e4e..c339cfd1b 100644 --- a/src/renderer/component/inviteList/view.jsx +++ b/src/renderer/component/inviteList/view.jsx @@ -1,5 +1,5 @@ import React from 'react'; -import Icon from 'component/common/icon'; +import Icon from 'component/icon'; import RewardLink from 'component/rewardLink'; import rewards from 'rewards.js'; diff --git a/src/renderer/component/link/view.jsx b/src/renderer/component/link/view.jsx index 41b103411..92451daff 100644 --- a/src/renderer/component/link/view.jsx +++ b/src/renderer/component/link/view.jsx @@ -1,99 +1,60 @@ -// @flow -import * as React from 'react'; -import Icon from 'component/common/icon'; -import classnames from 'classnames'; +import React from 'react'; +import Icon from 'component/icon'; -type Props = { - onClick: ?(any) => any, - href: ?string, - title: ?string, - label: ?string, - icon: ?string, - iconRight: ?string, - disabled: ?boolean, - children: ?React.Node, - navigate: ?string, - // TODO: these (nav) should be a reusable type - doNavigate: (string, ?any) => void, - navigateParams: any, - className: ?string, - inverse: ?boolean, - circle: ?boolean, - alt: ?boolean, - flat: ?boolean, - fakeLink: ?boolean, - description: ?string, -}; - -const Button = (props: Props) => { +const Link = props => { const { - onClick, href, title, + style, label, icon, iconRight, + button, disabled, children, navigate, navigateParams, doNavigate, className, - inverse, - alt, - circle, - flat, - fakeLink, - description, - ...otherProps + span, } = props; - const combinedClassName = classnames( - { - btn: !fakeLink, - 'btn--link': fakeLink, - 'btn--primary': !fakeLink && !alt, - 'btn--alt': alt, - 'btn--inverse': inverse, - 'btn--disabled': disabled, - 'btn--circle': circle, - 'btn--flat': flat, - }, - className - ); + const combinedClassName = + (className || '') + + (!className && !button ? 'button-text' : '') + // Non-button links get the same look as text buttons + (button ? ` button-block button-${button} button-set-item` : '') + + (disabled ? ' disabled' : ''); - const extendedOnClick = - !onClick && navigate + const onClick = + !props.onClick && navigate ? event => { event.stopPropagation(); doNavigate(navigate, navigateParams || {}); } - : onClick; + : props.onClick; - const content = ( - - {icon && } - {label && {label}} - {children && children} - {iconRight && } - - ); + let content; + if (children) { + content = children; + } else { + content = ( + + {icon ? : null} + {label ? {label} : null} + {iconRight ? : null} + + ); + } - return href ? ( -
- {content} - - ) : ( - - ); + const linkProps = { + className: combinedClassName, + href: href || 'javascript:;', + title, + onClick, + style, + }; + + return span ? {content} : {content}; }; -export default Button; +export default Link; diff --git a/src/renderer/component/menu.js b/src/renderer/component/menu.js index 5be125cd7..e070f8711 100644 --- a/src/renderer/component/menu.js +++ b/src/renderer/component/menu.js @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import Icon from 'component/common/icon'; +import Icon from 'component/icon'; import Link from 'component/link'; export class DropDownMenuItem extends React.PureComponent { diff --git a/src/renderer/component/page/index.js b/src/renderer/component/page/index.js deleted file mode 100644 index dbe9cc315..000000000 --- a/src/renderer/component/page/index.js +++ /dev/null @@ -1,9 +0,0 @@ -import { connect } from 'react-redux'; -import { selectPageTitle } from 'redux/selectors/navigation'; -import Page from './view'; - -const select = state => ({ - title: selectPageTitle(state), -}); - -export default connect(select, null)(Page); diff --git a/src/renderer/component/page/view.jsx b/src/renderer/component/page/view.jsx deleted file mode 100644 index 9d16b3e8f..000000000 --- a/src/renderer/component/page/view.jsx +++ /dev/null @@ -1,26 +0,0 @@ -// @flow -import * as React from 'react'; -import classnames from 'classnames'; -import { BusyMessage } from 'component/common'; - -type Props = { - children: React.Node, - title: ?string, - noPadding: ?boolean, - isLoading: ?boolean, -}; - -const Page = (props: Props) => { - const { children, title, noPadding, isLoading } = props; - return ( -
-
- {title &&

{title}

} - {isLoading && } -
-
{children}
-
- ); -}; - -export default Page; diff --git a/src/renderer/component/tooltip.js b/src/renderer/component/tooltip.js new file mode 100644 index 000000000..c81775614 --- /dev/null +++ b/src/renderer/component/tooltip.js @@ -0,0 +1,54 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +export class ToolTip extends React.PureComponent { + static propTypes = { + body: PropTypes.string.isRequired, + label: PropTypes.string.isRequired, + }; + + constructor(props) { + super(props); + + this.state = { + showTooltip: false, + }; + } + + handleClick() { + this.setState({ + showTooltip: !this.state.showTooltip, + }); + } + + handleTooltipMouseOut() { + this.setState({ + showTooltip: false, + }); + } + + render() { + return ( + + { + this.handleClick(); + }} + > + {this.props.label} + +
{ + this.handleTooltipMouseOut(); + }} + > + {this.props.body} +
+
+ ); + } +} + +export default ToolTip; diff --git a/src/renderer/component/uriIndicator/view.jsx b/src/renderer/component/uriIndicator/view.jsx index 04a8c78a3..704769250 100644 --- a/src/renderer/component/uriIndicator/view.jsx +++ b/src/renderer/component/uriIndicator/view.jsx @@ -1,46 +1,35 @@ -// @flow import React from 'react'; -import { Icon } from 'component/common'; -import Button from 'component/link'; +import Icon from 'component/icon'; +import Link from 'component/link'; import lbryuri from 'lbryuri'; import classnames from 'classnames'; -type Props = { - isResolvingUri: boolean, - resolveUri: string => void, - claim: { - channel_name: string, - has_signature: boolean, - signature_is_valid: boolean, - value: { - publisherSignature: { certificateId: string }, - }, - }, - uri: string, - link: ?boolean, -}; - -class UriIndicator extends React.PureComponent { +class UriIndicator extends React.PureComponent { componentWillMount() { this.resolve(this.props); } - componentWillReceiveProps(nextProps: Props) { + componentWillReceiveProps(nextProps) { this.resolve(nextProps); } - resolve = (props: Props) => { + resolve(props) { const { isResolvingUri, resolveUri, claim, uri } = props; if (!isResolvingUri && claim === undefined && uri) { resolveUri(uri); } - }; + } render() { - const { claim, link, isResolvingUri } = this.props; + const { claim, link, uri, isResolvingUri, smallCard, span } = this.props; + + if (isResolvingUri && !claim) { + return Validating...; + } + if (!claim) { - return {isResolvingUri ? 'Validating...' : 'Unused'}; + return Unused; } const { @@ -49,17 +38,14 @@ class UriIndicator extends React.PureComponent { signature_is_valid: signatureIsValid, value, } = claim; - const channelClaimId = value && value.publisherSignature && value.publisherSignature.certificateId; if (!hasSignature || !channelName) { - return Anonymous; + return Anonymous; } - let icon; - let channelLink; - let modifier; + let icon, channelLink, modifier; if (signatureIsValid) { modifier = 'valid'; @@ -73,6 +59,7 @@ class UriIndicator extends React.PureComponent { @@ -94,9 +81,14 @@ class UriIndicator extends React.PureComponent { } return ( - + ); } } diff --git a/src/renderer/component/wunderbar/index.js b/src/renderer/component/wunderbar/index.js index 575676232..826ab4225 100644 --- a/src/renderer/component/wunderbar/index.js +++ b/src/renderer/component/wunderbar/index.js @@ -1,21 +1,19 @@ +import React from 'react'; import { connect } from 'react-redux'; -import lbryuri from 'lbryuri'; -import { selectState as selectSearch, selectWunderBarAddress } from 'redux/selectors/search'; +import lbryuri from 'lbryuri.js'; +import { selectWunderBarAddress, selectWunderBarIcon } from 'redux/selectors/search'; import { doNavigate } from 'redux/actions/navigation'; -import { updateSearchQuery, getSearchSuggestions } from 'redux/actions/search'; import Wunderbar from './view'; const select = state => ({ - ...selectSearch(state), address: selectWunderBarAddress(state), + icon: selectWunderBarIcon(state), }); const perform = dispatch => ({ onSearch: query => dispatch(doNavigate('/search', { query })), onSubmit: (query, extraParams) => dispatch(doNavigate('/show', { uri: lbryuri.normalize(query), ...extraParams })), - updateSearchQuery: query => dispatch(updateSearchQuery(query)), - getSearchSuggestions: query => dispatch(getSearchSuggestions(query)), }); export default connect(select, perform)(Wunderbar); diff --git a/src/renderer/component/wunderbar/internal/autocomplete.jsx b/src/renderer/component/wunderbar/internal/autocomplete.jsx deleted file mode 100644 index 5c70c8f06..000000000 --- a/src/renderer/component/wunderbar/internal/autocomplete.jsx +++ /dev/null @@ -1,601 +0,0 @@ -/* -This is taken from https://github.com/reactjs/react-autocomplete - -We aren't using that component because (for now) there is no way to autohightlight -the first item if it isn't an exact match from what is in the search bar. - -Our use case is: -value in search bar: "hello" -first suggestion: "lbry://hello" - -I changed the function maybeAutoCompleteText to check if the suggestion contains -the search query anywhere, instead of the suggestion starting with it - -https://github.com/reactjs/react-autocomplete/issues/239 -*/ -/* eslint-disable */ - -const React = require('react'); -const PropTypes = require('prop-types'); -const { findDOMNode } = require('react-dom'); -const scrollIntoView = require('dom-scroll-into-view'); - -const IMPERATIVE_API = [ - 'blur', - 'checkValidity', - 'click', - 'focus', - 'select', - 'setCustomValidity', - 'setSelectionRange', - 'setRangeText', -]; - -function getScrollOffset() { - return { - x: - window.pageXOffset !== undefined - ? window.pageXOffset - : (document.documentElement || document.body.parentNode || document.body).scrollLeft, - y: - window.pageYOffset !== undefined - ? window.pageYOffset - : (document.documentElement || document.body.parentNode || document.body).scrollTop, - }; -} - -export default class Autocomplete extends React.Component { - static propTypes = { - /** - * The items to display in the dropdown menu - */ - items: PropTypes.array.isRequired, - /** - * The value to display in the input field - */ - value: PropTypes.any, - /** - * Arguments: `event: Event, value: String` - * - * Invoked every time the user changes the input's value. - */ - onChange: PropTypes.func, - /** - * Arguments: `value: String, item: Any` - * - * Invoked when the user selects an item from the dropdown menu. - */ - onSelect: PropTypes.func, - /** - * Arguments: `item: Any, value: String` - * - * Invoked for each entry in `items` and its return value is used to - * determine whether or not it should be displayed in the dropdown menu. - * By default all items are always rendered. - */ - shouldItemRender: PropTypes.func, - /** - * Arguments: `itemA: Any, itemB: Any, value: String` - * - * The function which is used to sort `items` before display. - */ - sortItems: PropTypes.func, - /** - * Arguments: `item: Any` - * - * Used to read the display value from each entry in `items`. - */ - getItemValue: PropTypes.func.isRequired, - /** - * Arguments: `item: Any, isHighlighted: Boolean, styles: Object` - * - * Invoked for each entry in `items` that also passes `shouldItemRender` to - * generate the render tree for each item in the dropdown menu. `styles` is - * an optional set of styles that can be applied to improve the look/feel - * of the items in the dropdown menu. - */ - renderItem: PropTypes.func.isRequired, - /** - * Arguments: `items: Array, value: String, styles: Object` - * - * Invoked to generate the render tree for the dropdown menu. Ensure the - * returned tree includes every entry in `items` or else the highlight order - * and keyboard navigation logic will break. `styles` will contain - * { top, left, minWidth } which are the coordinates of the top-left corner - * and the width of the dropdown menu. - */ - renderMenu: PropTypes.func, - /** - * Styles that are applied to the dropdown menu in the default `renderMenu` - * implementation. If you override `renderMenu` and you want to use - * `menuStyle` you must manually apply them (`this.props.menuStyle`). - */ - menuStyle: PropTypes.object, - /** - * Arguments: `props: Object` - * - * Invoked to generate the input element. The `props` argument is the result - * of merging `props.inputProps` with a selection of props that are required - * both for functionality and accessibility. At the very least you need to - * apply `props.ref` and all `props.on` event handlers. Failing to do - * this will cause `Autocomplete` to behave unexpectedly. - */ - renderInput: PropTypes.func, - /** - * Props passed to `props.renderInput`. By default these props will be - * applied to the `` element rendered by `Autocomplete`, unless you - * have specified a custom value for `props.renderInput`. Any properties - * supported by `HTMLInputElement` can be specified, apart from the - * following which are set by `Autocomplete`: value, autoComplete, role, - * aria-autocomplete. `inputProps` is commonly used for (but not limited to) - * placeholder, event handlers (onFocus, onBlur, etc.), autoFocus, etc.. - */ - inputProps: PropTypes.object, - /** - * Props that are applied to the element which wraps the `` and - * dropdown menu elements rendered by `Autocomplete`. - */ - wrapperProps: PropTypes.object, - /** - * This is a shorthand for `wrapperProps={{ style: }}`. - * Note that `wrapperStyle` is applied before `wrapperProps`, so the latter - * will win if it contains a `style` entry. - */ - wrapperStyle: PropTypes.object, - /** - * Whether or not to automatically highlight the top match in the dropdown - * menu. - */ - autoHighlight: PropTypes.bool, - /** - * Whether or not to automatically select the highlighted item when the - * `` loses focus. - */ - selectOnBlur: PropTypes.bool, - /** - * Arguments: `isOpen: Boolean` - * - * Invoked every time the dropdown menu's visibility changes (i.e. every - * time it is displayed/hidden). - */ - onMenuVisibilityChange: PropTypes.func, - /** - * Used to override the internal logic which displays/hides the dropdown - * menu. This is useful if you want to force a certain state based on your - * UX/business logic. Use it together with `onMenuVisibilityChange` for - * fine-grained control over the dropdown menu dynamics. - */ - open: PropTypes.bool, - debug: PropTypes.bool, - }; - - static defaultProps = { - value: '', - wrapperProps: {}, - wrapperStyle: { - display: 'inline-block', - }, - inputProps: {}, - renderInput(props) { - return ; - }, - onChange() {}, - onSelect() {}, - renderMenu(items, value, style) { - return
; - }, - menuStyle: { - borderRadius: '3px', - boxShadow: '0 2px 12px rgba(0, 0, 0, 0.1)', - background: 'rgba(255, 255, 255, 0.9)', - padding: '2px 0', - fontSize: '90%', - position: 'fixed', - overflow: 'auto', - maxHeight: '50%', // TODO: don't cheat, let it flow to the bottom, - }, - autoHighlight: true, - selectOnBlur: false, - onMenuVisibilityChange() {}, - }; - - constructor(props) { - super(props); - this.state = { - isOpen: false, - highlightedIndex: null, - }; - this._debugStates = []; - this.ensureHighlightedIndex = this.ensureHighlightedIndex.bind(this); - this.exposeAPI = this.exposeAPI.bind(this); - this.handleInputFocus = this.handleInputFocus.bind(this); - this.handleInputBlur = this.handleInputBlur.bind(this); - this.handleChange = this.handleChange.bind(this); - this.handleKeyDown = this.handleKeyDown.bind(this); - this.handleInputClick = this.handleInputClick.bind(this); - this.maybeAutoCompleteText = this.maybeAutoCompleteText.bind(this); - } - - componentWillMount() { - // this.refs is frozen, so we need to assign a new object to it - this.refs = {}; - this._ignoreBlur = false; - this._ignoreFocus = false; - this._scrollOffset = null; - this._scrollTimer = null; - } - - componentWillUnmount() { - clearTimeout(this._scrollTimer); - this._scrollTimer = null; - } - - componentWillReceiveProps(nextProps) { - if (this.state.highlightedIndex !== null) { - this.setState(this.ensureHighlightedIndex); - } - if ( - nextProps.autoHighlight && - (this.props.value !== nextProps.value || this.state.highlightedIndex === null) - ) { - this.setState(this.maybeAutoCompleteText); - } - } - - componentDidMount() { - if (this.isOpen()) { - this.setMenuPositions(); - } - } - - componentDidUpdate(prevProps, prevState) { - if ( - (this.state.isOpen && !prevState.isOpen) || - ('open' in this.props && this.props.open && !prevProps.open) - ) - this.setMenuPositions(); - - this.maybeScrollItemIntoView(); - if (prevState.isOpen !== this.state.isOpen) { - this.props.onMenuVisibilityChange(this.state.isOpen); - } - } - - exposeAPI(el) { - this.refs.input = el; - IMPERATIVE_API.forEach(ev => (this[ev] = el && el[ev] && el[ev].bind(el))); - } - - maybeScrollItemIntoView() { - if (this.isOpen() && this.state.highlightedIndex !== null) { - const itemNode = this.refs[`item-${this.state.highlightedIndex}`]; - const menuNode = this.refs.menu; - scrollIntoView(findDOMNode(itemNode), findDOMNode(menuNode), { - onlyScrollIfNeeded: true, - }); - } - } - - handleKeyDown(event) { - if (Autocomplete.keyDownHandlers[event.key]) - Autocomplete.keyDownHandlers[event.key].call(this, event); - else if (!this.isOpen()) { - this.setState({ - isOpen: true, - }); - } - } - - handleChange(event) { - this.props.onChange(event, event.target.value); - } - - static keyDownHandlers = { - ArrowDown(event) { - event.preventDefault(); - const itemsLength = this.getFilteredItems(this.props).length; - if (!itemsLength) return; - const { highlightedIndex } = this.state; - const index = - highlightedIndex === null || highlightedIndex === itemsLength - 1 - ? 0 - : highlightedIndex + 1; - this.setState({ - highlightedIndex: index, - isOpen: true, - }); - }, - - ArrowUp(event) { - event.preventDefault(); - const itemsLength = this.getFilteredItems(this.props).length; - if (!itemsLength) return; - const { highlightedIndex } = this.state; - const index = - highlightedIndex === 0 || highlightedIndex === null - ? itemsLength - 1 - : highlightedIndex - 1; - this.setState({ - highlightedIndex: index, - isOpen: true, - }); - }, - - Enter(event) { - // Key code 229 is used for selecting items from character selectors (Pinyin, Kana, etc) - if (event.keyCode !== 13) return; - if (!this.isOpen()) { - // menu is closed so there is no selection to accept -> do nothing - } else if (this.state.highlightedIndex == null) { - // input has focus but no menu item is selected + enter is hit -> close the menu, highlight whatever's in input - this.setState( - { - isOpen: false, - }, - () => { - this.refs.input.select(); - } - ); - } else { - // text entered + menu item has been highlighted + enter is hit -> update value to that of selected menu item, close the menu - event.preventDefault(); - const item = this.getFilteredItems(this.props)[this.state.highlightedIndex]; - const value = this.props.getItemValue(item); - this.setState( - { - isOpen: false, - highlightedIndex: null, - }, - () => { - // this.refs.input.focus() // TODO: file issue - this.refs.input.setSelectionRange(value.length, value.length); - this.props.onSelect(value, item); - } - ); - } - }, - - Escape() { - // In case the user is currently hovering over the menu - this.setIgnoreBlur(false); - this.setState({ - highlightedIndex: null, - isOpen: false, - }); - }, - - Tab() { - // In case the user is currently hovering over the menu - this.setIgnoreBlur(false); - }, - }; - - getFilteredItems(props) { - let items = props.items; - - if (props.shouldItemRender) { - items = items.filter(item => props.shouldItemRender(item, props.value)); - } - - if (props.sortItems) { - items.sort((a, b) => props.sortItems(a, b, props.value)); - } - - return items; - } - - maybeAutoCompleteText(state, props) { - const { highlightedIndex } = state; - const { value, getItemValue } = props; - const index = highlightedIndex === null ? 0 : highlightedIndex; - const matchedItem = this.getFilteredItems(props)[index]; - if (value !== '' && matchedItem) { - const itemValue = getItemValue(matchedItem); - const itemValueDoesMatch = - itemValue.toLowerCase().indexOf( - value.toLowerCase() - // below line is the the only thing that is changed from the real component - ) !== -1; - if (itemValueDoesMatch) { - return { highlightedIndex: index }; - } - } - return { highlightedIndex: null }; - } - - ensureHighlightedIndex(state, props) { - if (state.highlightedIndex >= this.getFilteredItems(props).length) { - return { highlightedIndex: null }; - } - } - - setMenuPositions() { - const node = this.refs.input; - const rect = node.getBoundingClientRect(); - const computedStyle = global.window.getComputedStyle(node); - const marginBottom = parseInt(computedStyle.marginBottom, 10) || 0; - const marginLeft = parseInt(computedStyle.marginLeft, 10) || 0; - const marginRight = parseInt(computedStyle.marginRight, 10) || 0; - this.setState({ - menuTop: rect.bottom + marginBottom, - menuLeft: rect.left + marginLeft, - menuWidth: rect.width + marginLeft + marginRight, - }); - } - - highlightItemFromMouse(index) { - this.setState({ highlightedIndex: index }); - } - - selectItemFromMouse(item) { - const value = this.props.getItemValue(item); - // The menu will de-render before a mouseLeave event - // happens. Clear the flag to release control over focus - this.setIgnoreBlur(false); - this.setState( - { - isOpen: false, - highlightedIndex: null, - }, - () => { - this.props.onSelect(value, item); - } - ); - } - - setIgnoreBlur(ignore) { - this._ignoreBlur = ignore; - } - - renderMenu() { - const items = this.getFilteredItems(this.props).map((item, index) => { - const element = this.props.renderItem(item, this.state.highlightedIndex === index, { - cursor: 'default', - }); - return React.cloneElement(element, { - onMouseEnter: () => this.highlightItemFromMouse(index), - onClick: () => this.selectItemFromMouse(item), - ref: e => (this.refs[`item-${index}`] = e), - }); - }); - const style = { - left: this.state.menuLeft, - top: this.state.menuTop, - minWidth: this.state.menuWidth, - }; - const menu = this.props.renderMenu(items, this.props.value, style); - return React.cloneElement(menu, { - ref: e => (this.refs.menu = e), - // Ignore blur to prevent menu from de-rendering before we can process click - onMouseEnter: () => this.setIgnoreBlur(true), - onMouseLeave: () => this.setIgnoreBlur(false), - }); - } - - handleInputBlur(event) { - if (this._ignoreBlur) { - this._ignoreFocus = true; - this._scrollOffset = getScrollOffset(); - this.refs.input.focus(); - return; - } - let setStateCallback; - const { highlightedIndex } = this.state; - if (this.props.selectOnBlur && highlightedIndex !== null) { - const items = this.getFilteredItems(this.props); - const item = items[highlightedIndex]; - const value = this.props.getItemValue(item); - setStateCallback = () => this.props.onSelect(value, item); - } - this.setState( - { - isOpen: false, - highlightedIndex: null, - }, - setStateCallback - ); - const { onBlur } = this.props.inputProps; - if (onBlur) { - onBlur(event); - } - } - - handleInputFocus(event) { - if (this._ignoreFocus) { - this._ignoreFocus = false; - const { x, y } = this._scrollOffset; - this._scrollOffset = null; - // Focus will cause the browser to scroll the into view. - // This can cause the mouse coords to change, which in turn - // could cause a new highlight to happen, cancelling the click - // event (when selecting with the mouse) - window.scrollTo(x, y); - // Some browsers wait until all focus event handlers have been - // processed before scrolling the into view, so let's - // scroll again on the next tick to ensure we're back to where - // the user was before focus was lost. We could do the deferred - // scroll only, but that causes a jarring split second jump in - // some browsers that scroll before the focus event handlers - // are triggered. - clearTimeout(this._scrollTimer); - this._scrollTimer = setTimeout(() => { - this._scrollTimer = null; - window.scrollTo(x, y); - }, 0); - return; - } - this.setState({ isOpen: true }); - const { onFocus } = this.props.inputProps; - if (onFocus) { - onFocus(event); - } - } - - isInputFocused() { - const el = this.refs.input; - return el.ownerDocument && el === el.ownerDocument.activeElement; - } - - handleInputClick() { - // Input will not be focused if it's disabled - if (this.isInputFocused() && !this.isOpen()) this.setState({ isOpen: true }); - } - - composeEventHandlers(internal, external) { - return external - ? e => { - internal(e); - external(e); - } - : internal; - } - - isOpen() { - return 'open' in this.props ? this.props.open : this.state.isOpen; - } - - render() { - if (this.props.debug) { - // you don't like it, you love it - this._debugStates.push({ - id: this._debugStates.length, - state: this.state, - }); - } - - const { inputProps, items } = this.props; - - const open = this.isOpen(); - return ( -
- {this.props.renderInput({ - ...inputProps, - role: 'combobox', - 'aria-autocomplete': 'list', - 'aria-expanded': open, - autoComplete: 'off', - ref: this.exposeAPI, - onFocus: this.handleInputFocus, - onBlur: this.handleInputBlur, - onChange: this.handleChange, - onKeyDown: this.composeEventHandlers(this.handleKeyDown, inputProps.onKeyDown), - onClick: this.composeEventHandlers(this.handleInputClick, inputProps.onClick), - value: this.props.value, - })} - {open && !!items.length && this.renderMenu()} - {this.props.debug && ( -
-            {JSON.stringify(
-              this._debugStates.slice(
-                Math.max(0, this._debugStates.length - 5),
-                this._debugStates.length
-              ),
-              null,
-              2
-            )}
-          
- )} -
- ); - } -} diff --git a/src/renderer/component/wunderbar/view.jsx b/src/renderer/component/wunderbar/view.jsx index 27fdd5e17..f332a11ec 100644 --- a/src/renderer/component/wunderbar/view.jsx +++ b/src/renderer/component/wunderbar/view.jsx @@ -1,116 +1,166 @@ -// @flow import React from 'react'; -import lbryuri from 'lbryuri'; -import classnames from 'classnames'; -import Autocomplete from './internal/autocomplete'; +import PropTypes from 'prop-types'; +import lbryuri from 'lbryuri.js'; +import Icon from 'component/icon'; +import { parseQueryParams } from 'util/query_params'; -type Props = { - updateSearchQuery: string => void, - getSearchSuggestions: string => void, - onSearch: string => void, - onSubmit: string => void, - searchQuery: ?string, - isActive: boolean, - address: ?string, - suggestions: Array, -}; +class WunderBar extends React.PureComponent { + static TYPING_TIMEOUT = 800; -class WunderBar extends React.PureComponent { - constructor() { - super(); - (this: any).handleSubmit = this.handleSubmit.bind(this); - (this: any).handleChange = this.handleChange.bind(this); - (this: any).focus = this.focus.bind(this); - this.input = undefined; + static propTypes = { + onSearch: PropTypes.func.isRequired, + onSubmit: PropTypes.func.isRequired, + }; + + constructor(props) { + super(props); + this._userTypingTimer = null; + this._isSearchDispatchPending = false; + this._input = null; + this._stateBeforeSearch = null; + this._resetOnNextBlur = true; + this.onChange = this.onChange.bind(this); + this.onFocus = this.onFocus.bind(this); + this.onBlur = this.onBlur.bind(this); + this.onKeyPress = this.onKeyPress.bind(this); + this.onReceiveRef = this.onReceiveRef.bind(this); + this.state = { + address: this.props.address, + icon: this.props.icon, + }; } - input: ?HTMLInputElement; - - handleChange(e: SyntheticInputEvent<*>) { - const { updateSearchQuery, getSearchSuggestions } = this.props; - const { value } = e.target; - - updateSearchQuery(value); - getSearchSuggestions(value); - } - - focus() { - const { input } = this; - if (input) { - input.focus(); + componentWillUnmount() { + if (this.userTypingTimer) { + clearTimeout(this._userTypingTimer); } } - handleSubmit(value: string) { - if (!value) { - return; + onChange(event) { + if (this._userTypingTimer) { + clearTimeout(this._userTypingTimer); } - const { onSubmit, onSearch } = this.props; + this.setState({ address: event.target.value }); - // if they choose the "search for {value}" in the suggestions - // it will contain the {query}?search - const choseDoSuggestedSearch = value.endsWith('?search'); + this._isSearchDispatchPending = true; - let searchValue = value; - if (choseDoSuggestedSearch) { - searchValue = value.slice(0, -7); // trim off ?search + const searchQuery = event.target.value; + + this._userTypingTimer = setTimeout(() => { + const hasQuery = searchQuery.length === 0; + this._resetOnNextBlur = hasQuery; + this._isSearchDispatchPending = false; + if (searchQuery) { + this.props.onSearch(searchQuery.trim()); + } + }, WunderBar.TYPING_TIMEOUT); // 800ms delay, tweak for faster/slower + } + + componentWillReceiveProps(nextProps) { + if ( + nextProps.viewingPage !== this.props.viewingPage || + nextProps.address != this.props.address + ) { + this.setState({ address: nextProps.address, icon: nextProps.icon }); } + } - if (this.input) { - this.input.blur(); - } + onFocus() { + this._stateBeforeSearch = this.state; + const newState = { + icon: 'icon-search', + isActive: true, + }; - try { - const uri = lbryuri.normalize(value); - onSubmit(uri); - } catch (e) { - // search query isn't a valid uri - onSearch(searchValue); + this._focusPending = true; + // below is hacking, improved when we have proper routing + if (!this.state.address.startsWith('lbry://') && this.state.icon !== 'icon-search') { + // onFocus, if they are not on an exact URL or a search page, clear the bar + newState.address = ''; } + this.setState(newState); + } + + onBlur() { + if (this._isSearchDispatchPending) { + setTimeout(() => { + this.onBlur(); + }, WunderBar.TYPING_TIMEOUT + 1); + } else { + const commonState = { isActive: false }; + if (this._resetOnNextBlur) { + this.setState(Object.assign({}, this._stateBeforeSearch, commonState)); + this._input.value = this.state.address; + } else { + this._resetOnNextBlur = true; + this._stateBeforeSearch = this.state; + this.setState(commonState); + } + } + } + + componentDidUpdate() { + if (this._input) { + const start = this._input.selectionStart, + end = this._input.selectionEnd; + + this._input.value = this.state.address; // this causes cursor to go to end of input + + this._input.setSelectionRange(start, end); + + if (this._focusPending) { + this._input.select(); + this._focusPending = false; + } + } + } + + onKeyPress(event) { + if (event.charCode == 13 && this._input.value) { + let uri = null, + method = 'onSubmit', + extraParams = {}; + + this._resetOnNextBlur = false; + clearTimeout(this._userTypingTimer); + + const parts = this._input.value.trim().split('?'); + const value = parts.shift(); + if (parts.length > 0) extraParams = parseQueryParams(parts.join('')); + + try { + uri = lbryuri.normalize(value); + this.setState({ value: uri }); + } catch (error) { + // then it's not a valid URL, so let's search + uri = value; + method = 'onSearch'; + } + + this.props[method](uri, extraParams); + this._input.blur(); + } + } + + onReceiveRef(ref) { + this._input = ref; } render() { - const { searchQuery, isActive, address, suggestions } = this.props; - - // if we are on the file/channel page - // use the address in the history stack - const wunderbarValue = isActive ? searchQuery : searchQuery || address; - return ( -
- { - this.input = ref; - }} - wrapperStyle={{ flex: 1, minHeight: 0 }} - value={wunderbarValue} - items={suggestions} - getItemValue={item => item.value} - onChange={this.handleChange} - onSelect={this.handleSubmit} - renderInput={props => ( - - )} - renderItem={(item, isHighlighted) => ( -
- {item.label} -
- )} +
+ {this.state.icon ? : ''} +
); diff --git a/src/renderer/constants/action_types.js b/src/renderer/constants/action_types.js index 9a8c57c7f..3c828f5cb 100644 --- a/src/renderer/constants/action_types.js +++ b/src/renderer/constants/action_types.js @@ -88,13 +88,9 @@ export const FETCH_AVAILABILITY_COMPLETED = 'FETCH_AVAILABILITY_COMPLETED'; export const FILE_DELETE = 'FILE_DELETE'; // Search -export const SEARCH_START = 'SEARCH_START'; -export const SEARCH_SUCCESS = 'SEARCH_SUCCESS'; -export const SEARCH_FAIL = 'SEARCH_FAIL'; -export const UPDATE_SEARCH_QUERY = 'UPDATE_SEARCH_QUERY'; -export const SEARCH_SUGGESTIONS_START = 'SEARCH_SUGGESTIONS_START'; -export const GET_SEARCH_SUGGESTIONS_SUCCESS = 'GET_SEARCH_SUGGESTIONS_SUCCESS'; -export const GET_SEARCH_SUGGESTIONS_FAIL = 'GET_SEARCH_SUGGESTIONS_FAIL'; +export const SEARCH_STARTED = 'SEARCH_STARTED'; +export const SEARCH_COMPLETED = 'SEARCH_COMPLETED'; +export const SEARCH_CANCELLED = 'SEARCH_CANCELLED'; // Settings export const DAEMON_SETTINGS_RECEIVED = 'DAEMON_SETTINGS_RECEIVED'; diff --git a/flow-typed/reselect.js b/src/renderer/flow-typed/reselect.js similarity index 100% rename from flow-typed/reselect.js rename to src/renderer/flow-typed/reselect.js diff --git a/src/renderer/index.js b/src/renderer/index.js index ad2db3927..fd6dcc1f7 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -31,7 +31,7 @@ ipcRenderer.on('open-uri-requested', (event, uri, newSession) => { try { verification = JSON.parse(atob(uri.substring(15))); } catch (error) { - console.log(error); // eslint-disable-line no-console + console.log(error); } if (verification.token && verification.recaptcha) { app.store.dispatch(doConditionalAuthNavigate(newSession)); @@ -112,10 +112,10 @@ const init = () => { ReactDOM.render( - +
- +
, document.getElementById('app') ); diff --git a/src/renderer/page/channel/view.jsx b/src/renderer/page/channel/view.jsx index 7ce61b182..f32a9f938 100644 --- a/src/renderer/page/channel/view.jsx +++ b/src/renderer/page/channel/view.jsx @@ -1,4 +1,3 @@ -/* eslint-disable */ import React from 'react'; import lbryuri from 'lbryuri'; import { BusyMessage } from 'component/common'; @@ -6,7 +5,6 @@ import FileTile from 'component/fileTile'; import ReactPaginate from 'react-paginate'; import Link from 'component/link'; import SubscribeButton from 'component/subscribeButton'; -import Page from 'component/page'; class ChannelPage extends React.PureComponent { componentDidMount() { @@ -72,7 +70,7 @@ class ChannelPage extends React.PureComponent { } return ( - +
@@ -109,10 +107,9 @@ class ChannelPage extends React.PureComponent { containerClassName="pagination" /> )} - +
); } } export default ChannelPage; -/* eslint-enable */ diff --git a/src/renderer/page/discover/view.jsx b/src/renderer/page/discover/view.jsx index 28adf330c..52b841bab 100644 --- a/src/renderer/page/discover/view.jsx +++ b/src/renderer/page/discover/view.jsx @@ -1,37 +1,259 @@ -// @flow import React from 'react'; -import Page from 'component/page'; -import CategoryList from 'component/common/category-list'; +import ReactDOM from 'react-dom'; +import lbryuri from 'lbryuri'; +import FileCard from 'component/fileCard'; +import { BusyMessage } from 'component/common.js'; +import Icon from 'component/icon'; +import ToolTip from 'component/tooltip.js'; +import SubHeader from 'component/subHeader'; +import classnames from 'classnames'; +import Link from 'component/link'; -type Props = { - fetchFeaturedUris: () => void, - fetchingFeaturedUris: boolean, - featuredUris: {}, -}; +// This should be in a separate file +export class FeaturedCategory extends React.PureComponent { + constructor() { + super(); -class DiscoverPage extends React.PureComponent { + this.state = { + numItems: undefined, + canScrollPrevious: false, + canScrollNext: false, + }; + } + + componentWillMount() { + this.setState({ + numItems: this.props.names.length, + }); + } + + componentDidMount() { + const cardRow = ReactDOM.findDOMNode(this.refs.rowitems); + const cards = cardRow.getElementsByTagName('section'); + + // check if the last card is visible + const lastCard = cards[cards.length - 1]; + const isCompletelyVisible = this.isCardVisible(lastCard, cardRow, false); + + if (!isCompletelyVisible) { + this.setState({ + canScrollNext: true, + }); + } + } + + handleScrollPrevious() { + const cardRow = ReactDOM.findDOMNode(this.refs.rowitems); + if (cardRow.scrollLeft > 0) { + // check the visible cards + const cards = cardRow.getElementsByTagName('section'); + let firstVisibleCard = null; + let firstVisibleIdx = -1; + for (let i = 0; i < cards.length; i++) { + if (this.isCardVisible(cards[i], cardRow, false)) { + firstVisibleCard = cards[i]; + firstVisibleIdx = i; + break; + } + } + + const numDisplayed = this.numDisplayedCards(cardRow); + const scrollToIdx = firstVisibleIdx - numDisplayed; + const animationCallback = () => { + this.setState({ + canScrollPrevious: cardRow.scrollLeft !== 0, + canScrollNext: true, + }); + }; + this.scrollCardItemsLeftAnimated( + cardRow, + scrollToIdx < 0 ? 0 : cards[scrollToIdx].offsetLeft, + 100, + animationCallback + ); + } + } + + handleScrollNext() { + const cardRow = ReactDOM.findDOMNode(this.refs.rowitems); + + // check the visible cards + const cards = cardRow.getElementsByTagName('section'); + let lastVisibleCard = null; + let lastVisibleIdx = -1; + for (let i = 0; i < cards.length; i++) { + if (this.isCardVisible(cards[i], cardRow, true)) { + lastVisibleCard = cards[i]; + lastVisibleIdx = i; + } + } + + if (lastVisibleCard) { + const numDisplayed = this.numDisplayedCards(cardRow); + const animationCallback = () => { + // update last visible index after scroll + for (let i = 0; i < cards.length; i++) { + if (this.isCardVisible(cards[i], cardRow, true)) { + lastVisibleIdx = i; + } + } + + this.setState({ canScrollPrevious: true }); + if (lastVisibleIdx === cards.length - 1) { + this.setState({ canScrollNext: false }); + } + }; + + this.scrollCardItemsLeftAnimated( + cardRow, + Math.min(lastVisibleCard.offsetLeft, cardRow.scrollWidth - cardRow.clientWidth), + 100, + animationCallback + ); + } + } + + scrollCardItemsLeftAnimated(cardRow, target, duration, callback) { + if (!duration || duration <= diff) { + cardRow.scrollLeft = target; + if (callback) { + callback(); + } + return; + } + + const component = this; + const diff = target - cardRow.scrollLeft; + const tick = diff / duration * 10; + setTimeout(() => { + cardRow.scrollLeft += tick; + if (cardRow.scrollLeft === target) { + if (callback) { + callback(); + } + return; + } + component.scrollCardItemsLeftAnimated(cardRow, target, duration - 10, callback); + }, 10); + } + + isCardVisible(section, cardRow, partialVisibility) { + // check if a card is fully or partialy visible in its parent + const cardRowWidth = cardRow.offsetWidth; + const cardRowLeft = cardRow.scrollLeft; + const cardRowEnd = cardRowLeft + cardRow.offsetWidth; + const sectionLeft = section.offsetLeft - cardRowLeft; + const sectionEnd = sectionLeft + section.offsetWidth; + + return ( + (sectionLeft >= 0 && sectionEnd <= cardRowWidth) || + (((sectionLeft < 0 && sectionEnd > 0) || (sectionLeft > 0 && sectionLeft <= cardRowWidth)) && + partialVisibility) + ); + } + + numDisplayedCards(cardRow) { + const cards = cardRow.getElementsByTagName('section'); + const cardRowWidth = cardRow.offsetWidth; + // get the width of the first card and then calculate + const cardWidth = cards.length > 0 ? cards[0].offsetWidth : 0; + + if (cardWidth > 0) { + return Math.ceil(cardRowWidth / cardWidth); + } + + // return a default value of 1 card displayed if the card width couldn't be determined + return 1; + } + + render() { + const { category, names, categoryLink } = this.props; + + return ( +
+

+ {categoryLink ? ( + + ) : ( + category + )} + + {category && + category.match(/^community/i) && ( + + )} +

+
+ {this.state.canScrollPrevious && ( +
+ + + +
+ )} + {this.state.canScrollNext && ( +
+ + + +
+ )} +
+ {names && + names.map(name => ( + + ))} +
+
+
+ ); + } +} + +class DiscoverPage extends React.PureComponent { componentWillMount() { this.props.fetchFeaturedUris(); } render() { const { featuredUris, fetchingFeaturedUris } = this.props; - const hasContent = typeof featuredUris === 'object' && Object.keys(featuredUris).length; - const failedToLoad = !fetchingFeaturedUris && !hasContent; + const hasContent = typeof featuredUris === 'object' && Object.keys(featuredUris).length, + failedToLoad = !fetchingFeaturedUris && !hasContent; return ( - +
+ + {!hasContent && fetchingFeaturedUris && } {hasContent && Object.keys(featuredUris).map( category => featuredUris[category].length ? ( - + ) : ( '' ) )} {failedToLoad &&
{__('Failed to load landing content.')}
} - +
); } } diff --git a/src/renderer/page/file/view.jsx b/src/renderer/page/file/view.jsx index d9a224c84..fb8f741c8 100644 --- a/src/renderer/page/file/view.jsx +++ b/src/renderer/page/file/view.jsx @@ -1,4 +1,3 @@ -/* eslint-disable */ import React from 'react'; import lbry from 'lbry'; import lbryuri from 'lbryuri'; @@ -7,13 +6,12 @@ import { Thumbnail } from 'component/common'; import FilePrice from 'component/filePrice'; import FileDetails from 'component/fileDetails'; import UriIndicator from 'component/uriIndicator'; -import Icon from 'component/common/icon'; +import Icon from 'component/icon'; import WalletSendTip from 'component/walletSendTip'; import DateTime from 'component/dateTime'; import * as icons from 'constants/icons'; import Link from 'component/link'; import SubscribeButton from 'component/subscribeButton'; -import Page from 'component/page'; class FilePage extends React.PureComponent { componentDidMount() { @@ -71,52 +69,49 @@ class FilePage extends React.PureComponent { } return ( - -
-
- {isPlayable ? ( -
-
- {(!tab || tab === 'details') && ( -
- {' '} -
- {!fileInfo || fileInfo.written_bytes <= 0 ? ( - - - {isRewardContent && ( - - {' '} - - - )} - - ) : null} -

{title}

-
- - - Published on - -
+
+
+ {isPlayable ? ( +
+
+ {(!tab || tab === 'details') && ( +
+ {' '} +
+ {!fileInfo || fileInfo.written_bytes <= 0 ? ( + + + {isRewardContent && ( + + {' '} + + + )} + + ) : null} +

{title}

+
+ + + Published on +
- -
- )} - {tab === 'tip' && } -
-
- + + +
+ )} + {tab === 'tip' && } +
+
); } } export default FilePage; -/* eslint-enable */ diff --git a/src/renderer/page/help/view.jsx b/src/renderer/page/help/view.jsx index c2590fd81..bb22e6fe5 100644 --- a/src/renderer/page/help/view.jsx +++ b/src/renderer/page/help/view.jsx @@ -4,7 +4,7 @@ import lbry from 'lbry.js'; import Link from 'component/link'; import SubHeader from 'component/subHeader'; import { BusyMessage } from 'component/common'; -import Icon from 'component/common/icon'; +import Icon from 'component/icon'; class HelpPage extends React.PureComponent { constructor(props) { diff --git a/src/renderer/page/search/view.jsx b/src/renderer/page/search/view.jsx index c3cd0cc7e..48aed6fce 100644 --- a/src/renderer/page/search/view.jsx +++ b/src/renderer/page/search/view.jsx @@ -1,21 +1,15 @@ -// @flow import React from 'react'; import lbryuri from 'lbryuri'; import FileTile from 'component/fileTile'; import FileListSearch from 'component/fileListSearch'; -import ToolTip from 'component/common/tooltip'; -import Page from 'component/page'; +import { ToolTip } from 'component/tooltip.js'; -type Props = { - query: ?string, -}; - -class SearchPage extends React.PureComponent { +class SearchPage extends React.PureComponent { render() { const { query } = this.props; return ( - +
{lbryuri.isValid(query) ? (

@@ -42,7 +36,7 @@ class SearchPage extends React.PureComponent {

- +
); } } diff --git a/src/renderer/page/show/view.jsx b/src/renderer/page/show/view.jsx index 60a1fd06f..ebb45da30 100644 --- a/src/renderer/page/show/view.jsx +++ b/src/renderer/page/show/view.jsx @@ -1,24 +1,17 @@ -/* eslint-disable */ import React from 'react'; +import lbryuri from 'lbryuri'; import { BusyMessage } from 'component/common'; import ChannelPage from 'page/channel'; import FilePage from 'page/file'; -type Props = { - isResolvingUri: boolean, - resolveUri: string => void, - uri: string, - claim: { name: string }, -}; - -class ShowPage extends React.PureComponent { +class ShowPage extends React.PureComponent { componentWillMount() { const { isResolvingUri, resolveUri, uri } = this.props; if (!isResolvingUri) resolveUri(uri); } - componentWillReceiveProps(nextProps: Props) { + componentWillReceiveProps(nextProps) { const { isResolvingUri, resolveUri, claim, uri } = nextProps; if (!isResolvingUri && claim === undefined && uri) { @@ -54,9 +47,8 @@ class ShowPage extends React.PureComponent { innerContent = ; } - return innerContent; + return
{innerContent}
; } } export default ShowPage; -/* eslint-enable */ diff --git a/src/renderer/page/subscriptions/view.jsx b/src/renderer/page/subscriptions/view.jsx index 3c4e6e61a..3e09748a5 100644 --- a/src/renderer/page/subscriptions/view.jsx +++ b/src/renderer/page/subscriptions/view.jsx @@ -1,8 +1,8 @@ // @flow import React from 'react'; import SubHeader from 'component/subHeader'; -import { BusyMessage } from 'component/common'; -import CategoryList from 'component/common/category-list'; +import { BusyMessage } from 'component/common.js'; +import { FeaturedCategory } from 'page/discover/view'; import type { Subscription } from 'redux/reducers/subscriptions'; type SavedSubscriptions = Array; @@ -83,7 +83,7 @@ export default class extends React.PureComponent { } return ( - - searchResponse.status === 200 - ? Promise.resolve(searchResponse.json()) - : Promise.reject(new Error(searchResponse.statusText)); +// eslint-disable-next-line import/prefer-default-export +export function doSearch(rawQuery) { + return (dispatch, getState) => { + const state = getState(); + const page = selectCurrentPage(state); -export const doSearch = rawQuery => (dispatch, getState) => { - const state = getState(); - const page = selectCurrentPage(state); + const query = rawQuery.replace(/^lbry:\/\//i, ''); - const query = rawQuery.replace(/^lbry:\/\//i, ''); - - if (!query) { - dispatch({ - type: ACTIONS.SEARCH_FAIL, - }); - return; - } - - dispatch({ - type: ACTIONS.SEARCH_START, - data: { query }, - }); - - if (page !== 'search') { - dispatch(doNavigate('search', { query })); - } else { - fetch(`https://lighthouse.lbry.io/search?s=${query}`) - .then(handleSearchApiResponse) - .then(data => { - const uris = []; - const actions = []; - - data.forEach(result => { - const uri = Lbryuri.build({ - name: result.name, - claimId: result.claimId, - }); - actions.push(doResolveUri(uri)); - uris.push(uri); - }); - - actions.push({ - type: ACTIONS.SEARCH_SUCCESS, - data: { - query, - uris, - }, - }); - dispatch(batchActions(...actions)); - }) - .catch(() => { - dispatch({ - type: ACTIONS.SEARCH_FAIL, - }); - }); - } -}; - -export const updateSearchQuery = searchQuery => ({ - type: ACTIONS.UPDATE_SEARCH_QUERY, - data: { searchQuery }, -}); - -export const getSearchSuggestions = value => dispatch => { - dispatch({ type: ACTIONS.SEARCH_SUGGESTIONS_START }); - if (!value) { - dispatch({ - type: ACTIONS.GET_SEARCH_SUGGESTIONS_SUCCESS, - data: [], - }); - return; - } - - // This should probably be more robust - let searchValue = value; - if (searchValue.startsWith('lbry://')) { - searchValue = searchValue.slice(7); - } - - // need to handle spaces in the query? - fetch(`https://lighthouse.lbry.io/autocomplete?s=${searchValue}`) - .then(handleSearchApiResponse) - .then(suggestions => { - const formattedSuggestions = suggestions.slice(0, 5).map(suggestion => ({ - label: suggestion, - value: suggestion, - })); - - // Should we add lbry://{query} as the first result? - // If it's not a valid uri, then add a "search for {query}" result - const searchLabel = `Search for "${value}"`; - try { - const uri = Lbryuri.normalize(value); - formattedSuggestions.unshift( - { label: uri, value: uri }, - { label: searchLabel, value: `${value}?search` } - ); - } catch (e) { - if (value) { - formattedSuggestions.unshift({ label: searchLabel, value }); - } - } - - return dispatch({ - type: ACTIONS.GET_SEARCH_SUGGESTIONS_SUCCESS, - data: formattedSuggestions, - }); - }) - .catch(err => + if (!query) { dispatch({ - type: ACTIONS.GET_SEARCH_SUGGESTIONS_FAIL, - data: err, - }) - ); -}; + type: ACTIONS.SEARCH_CANCELLED, + }); + return; + } + + dispatch({ + type: ACTIONS.SEARCH_STARTED, + data: { query }, + }); + + if (page !== 'search') { + dispatch(doNavigate('search', { query })); + } else { + fetch(`https://lighthouse.lbry.io/search?s=${query}`) + .then( + response => + response.status === 200 + ? Promise.resolve(response.json()) + : Promise.reject(new Error(response.statusText)) + ) + .then(data => { + const uris = []; + const actions = []; + + data.forEach(result => { + const uri = Lbryuri.build({ + name: result.name, + claimId: result.claimId, + }); + actions.push(doResolveUri(uri)); + uris.push(uri); + }); + + actions.push({ + type: ACTIONS.SEARCH_COMPLETED, + data: { + query, + uris, + }, + }); + dispatch(batchActions(...actions)); + }) + .catch(() => { + dispatch({ + type: ACTIONS.SEARCH_CANCELLED, + }); + }); + } + }; +} diff --git a/src/renderer/redux/reducers/search.js b/src/renderer/redux/reducers/search.js index 3a8330b93..b3a0754e4 100644 --- a/src/renderer/redux/reducers/search.js +++ b/src/renderer/redux/reducers/search.js @@ -1,75 +1,32 @@ -// @flow import * as ACTIONS from 'constants/action_types'; -import { handleActions } from 'util/redux-utils'; - -type SearchState = { - isActive: boolean, - searchQuery: string, - searchingForSuggestions: boolean, - suggestions: Array, - urisByQuery: {}, -}; +const reducers = {}; const defaultState = { - isActive: false, - searchQuery: '', // needs to be an empty string for input focusing - searchingForSuggestions: false, - suggestions: [], urisByQuery: {}, + searching: false, }; -export default handleActions( - { - [ACTIONS.SEARCH_START]: (state: SearchState): SearchState => ({ - ...state, - searching: true, - }), - [ACTIONS.SEARCH_SUCCESS]: (state: SearchState, action): SearchState => { - const { query, uris } = action.data; +reducers[ACTIONS.SEARCH_STARTED] = state => + Object.assign({}, state, { + searching: true, + }); - return { - ...state, - searching: false, - urisByQuery: Object.assign({}, state.urisByQuery, { [query]: uris }), - }; - }, +reducers[ACTIONS.SEARCH_COMPLETED] = (state, action) => { + const { query, uris } = action.data; - [ACTIONS.SEARCH_FAIL]: (state: SearchState): SearchState => ({ - ...state, - searching: false, - }), + return Object.assign({}, state, { + searching: false, + urisByQuery: Object.assign({}, state.urisByQuery, { [query]: uris }), + }); +}; - [ACTIONS.UPDATE_SEARCH_QUERY]: (state: SearchState, action): SearchState => ({ - ...state, - searchQuery: action.data.searchQuery, - suggestions: [], - isActive: true, - }), +reducers[ACTIONS.SEARCH_CANCELLED] = state => + Object.assign({}, state, { + searching: false, + }); - [ACTIONS.SEARCH_SUGGESTIONS_START]: (state: SearchState): SearchState => ({ - ...state, - searchingForSuggestions: true, - suggestions: [], - }), - [ACTIONS.GET_SEARCH_SUGGESTIONS_SUCCESS]: (state: SearchState, action): SearchState => ({ - ...state, - searchingForSuggestions: false, - suggestions: action.data, - }), - [ACTIONS.GET_SEARCH_SUGGESTIONS_FAIL]: (state: SearchState): SearchState => ({ - ...state, - searchingForSuggestions: false, - // error, TODO: figure this out on the search page - }), - - // clear the searchQuery on back/forward - // it may be populated by the page title for search/file pages - // if going home, it should be blank - [ACTIONS.HISTORY_NAVIGATE]: (state: SearchState): SearchState => ({ - ...state, - searchQuery: '', - isActive: false, - }), - }, - defaultState -); +export default function reducer(state = defaultState, action) { + const handler = reducers[action.type]; + if (handler) return handler(state, action); + return state; +} diff --git a/src/renderer/redux/selectors/navigation.js b/src/renderer/redux/selectors/navigation.js index 014a0b988..dc0b507a1 100644 --- a/src/renderer/redux/selectors/navigation.js +++ b/src/renderer/redux/selectors/navigation.js @@ -68,6 +68,30 @@ export const selectPageTitle = createSelector( selectCurrentParams, (page, params) => { switch (page) { + case 'settings': + return __('Settings'); + case 'report': + return __('Report'); + case 'wallet': + return __('Wallet'); + case 'send': + return __('Send or Receive LBRY Credits'); + case 'getcredits': + return __('Get LBRY Credits'); + case 'backup': + return __('Backup Your Wallet'); + case 'rewards': + return __('Rewards'); + case 'invite': + return __('Invites'); + case 'start': + return __('Start'); + case 'publish': + return params.id ? __('Edit') : __('Publish'); + case 'help': + return __('Help'); + case 'developer': + return __('Developer'); case 'show': { const parts = [Lbryuri.normalize(params.uri)]; // If the params has any keys other than "uri" @@ -76,14 +100,21 @@ export const selectPageTitle = createSelector( } return parts.join('?'); } + case 'downloaded': + return __('Downloads & Purchases'); + case 'published': + return __('Publications'); + case 'search': + return params.query ? __('Search results for %s', params.query) : __('Search'); + case 'subscriptions': + return __('Your Subscriptions'); case 'discover': - return __('Discover'); case false: case null: case '': return ''; default: - return ''; + return page[0].toUpperCase() + (page.length > 0 ? page.substr(1) : ''); } } ); diff --git a/src/renderer/redux/selectors/search.js b/src/renderer/redux/selectors/search.js index 8eb6c95c0..4e49f47d8 100644 --- a/src/renderer/redux/selectors/search.js +++ b/src/renderer/redux/selectors/search.js @@ -28,15 +28,52 @@ export const selectWunderBarAddress = createSelector( selectCurrentPage, selectPageTitle, selectSearchQuery, - (page, title, query) => { - // only populate the wunderbar address if we are on the file/channel pages - // or show the search query - if (page === 'show') { - return title; - } else if (page === 'search') { - return query; - } + (page, title, query) => (page !== 'search' ? title : query || title) +); - return ''; +export const selectWunderBarIcon = createSelector( + selectCurrentPage, + selectCurrentParams, + (page, params) => { + switch (page) { + case 'auth': + return 'icon-user'; + case 'settings': + return 'icon-gear'; + case 'help': + return 'icon-question'; + case 'report': + return 'icon-file'; + case 'downloaded': + return 'icon-folder'; + case 'published': + return 'icon-folder'; + case 'history': + return 'icon-history'; + case 'send': + return 'icon-send'; + case 'rewards': + return 'icon-rocket'; + case 'invite': + return 'icon-envelope-open'; + case 'getcredits': + return 'icon-shopping-cart'; + case 'wallet': + case 'backup': + return 'icon-bank'; + case 'show': + return 'icon-file'; + case 'publish': + return params.id ? __('icon-pencil') : __('icon-upload'); + case 'developer': + return 'icon-code'; + case 'discover': + case 'search': + return 'icon-search'; + case 'subscriptions': + return 'icon-th-list'; + default: + return 'icon-file'; + } } ); diff --git a/src/renderer/scss/_gui.scss b/src/renderer/scss/_gui.scss index db1eedf76..92b82d146 100644 --- a/src/renderer/scss/_gui.scss +++ b/src/renderer/scss/_gui.scss @@ -1,30 +1,4 @@ -// Generic html styles used accross the App -// component specific styling should go in the component scss file - -// The actual fonts used will change ex: medium vs regular -@font-face { - font-family: 'Metropolis'; - font-weight: normal; - font-style: normal; - text-rendering: optimizeLegibility; - src: url('../../../static/font/metropolis/Metropolis-Medium.woff2') format('woff2'); -} - -@font-face { - font-family: 'Metropolis'; - font-weight: 600; - font-style: normal; - text-rendering: optimizeLegibility; - src: url('../../../static/font/metropolis/Metropolis-SemiBold.woff2') format('woff2'); -} - -@font-face { - font-family: 'Metropolis'; - font-weight: 800; - font-style: normal; - text-rendering: optimizeLegibility; - src: url('../../../static/font/metropolis/Metropolis-ExtraBold.woff2') format('woff2'); -} +@import url(https://fonts.googleapis.com/css?family=Roboto:400,400i,500,500i,700); html { height: 100%; @@ -33,20 +7,84 @@ html { body { color: var(--text-color); - font-family: 'Metropolis', sans-serif; + font-family: 'Roboto', sans-serif; line-height: var(--font-line-height); - height: 100%; - overflow: hidden; } -h1, -h2, -h3, -h4, -h5 { +/* Custom text selection */ +*::selection { + background: var(--text-selection-bg); + color: var(--text-selection-color); +} + +#window { + min-height: 100vh; + background: var(--window-bg); +} + +.credit-amount--indicator { + font-weight: 500; + color: var(--color-money); +} +.credit-amount--fee { + font-size: 0.9em; + color: var(--color-meta-light); +} + +.credit-amount--bold { font-weight: 700; } +#main-content { + margin: auto; + display: flex; + flex-direction: column; + overflow: overlay; + padding: $spacing-vertical; + position: absolute; + top: var(--header-height); + bottom: 0; + left: 4px; + right: 4px; + main { + margin-left: auto; + margin-right: auto; + max-width: 100%; + } + main.main--single-column { + width: $width-page-constrained; + } + + main.main--no-margin { + margin-left: 0; + margin-right: 0; + } +} + +.reloading { + &:before { + $width: 30px; + position: absolute; + background: url('../../../static/img/busy.gif') no-repeat center center; + width: $width; + height: $spacing-vertical; + content: ''; + left: 50%; + margin-left: -1 / 2 * $width; + display: inline-block; + } +} + +.icon-fixed-width { + /* This borrowed is from a component of Font Awesome we're not using, maybe add it? */ + width: (18em / 14); + text-align: center; +} + +.icon--left-pad { + padding-left: 3px; +} + h2 { font-size: 1.75em; } @@ -62,13 +100,11 @@ h4 { h5 { font-size: 1.1em; } - sup, sub { vertical-align: baseline; position: relative; } - sup { top: -0.4em; } @@ -81,67 +117,11 @@ code { background-color: var(--color-bg-alt); } -// Without this buttons don't have the Metropolis font -button { - font-family: inherit; -} - -#window { - height: 100%; - overflow: hidden; -} - -#main-content { - height: 100%; - overflow-y: auto; - position: absolute; - left: 0px; - right: 0px; - // don't use {bottom/top} here - // they cause flashes of un-rendered content when scrolling - margin-top: var(--header-height); - // TODO: fix this scrollbar extends beyond screen at the bottom - padding-bottom: var(--header-height); - background-color: var(--color-bg); -} - -.main { - padding: 0 $spacing-vertical * 2/3; -} - -.main--no-padding { - padding-left: 0; - padding-right: 0; -} - -.page__header { - padding: $spacing-vertical * 2/3; - padding-bottom: 0; -} - -.page__title { - font-weight: 800; - font-size: 3em; -} - -/* Custom text selection */ -*::selection { - background: var(--text-selection-bg); - color: var(--text-selection-color); -} - -.credit-amount--indicator { - font-weight: 500; - color: var(--color-money); -} - -.credit-amount--fee { - font-size: 0.9em; - color: var(--color-meta-light); -} - -.credit-amount--bold { - font-weight: 700; +p { + margin-bottom: 0.8em; + &:last-child { + margin-bottom: 0; + } } .hidden { @@ -212,3 +192,7 @@ button { section.section-spaced { margin-bottom: $spacing-vertical; } + +.text-center { + text-align: center; +} diff --git a/src/renderer/scss/_icons.scss b/src/renderer/scss/_icons.scss index 7797614a8..c589a1ac5 100644 --- a/src/renderer/scss/_icons.scss +++ b/src/renderer/scss/_icons.scss @@ -27,16 +27,6 @@ transform: translate(0, 0); } -.icon--fixed-width { - /* This borrowed is from a component of Font Awesome we're not using, maybe add it? */ - width: (18em / 14); - text-align: center; -} - -.icon--padded { - padding: 0 3px; -} - /* Adjustments for icon size and alignment */ .icon-rocket { color: orangered; diff --git a/src/renderer/scss/_vars.scss b/src/renderer/scss/_vars.scss index d93fd2217..15436a5b1 100644 --- a/src/renderer/scss/_vars.scss +++ b/src/renderer/scss/_vars.scss @@ -6,8 +6,6 @@ $width-page-constrained: 800px; $text-color: #000; :root { - --spacing-vertical: 24px; - /* Colors */ --color-brand: #155b4a; --color-primary: #155b4a; @@ -23,8 +21,7 @@ $text-color: #000; --color-download: rgba(0, 0, 0, 0.75); --color-canvas: #f5f5f5; --color-bg: #ffffff; - --color-bg-alt: #f6f6f6; - --color-placeholder: #ececec; + --color-bg-alt: #d9d9d9; /* Misc */ --content-max-width: 1000px; @@ -37,7 +34,7 @@ $text-color: #000; --font-size-subtext-multiple: 0.82; /* Shadows */ - --box-shadow-layer: 0px 1px 3px 0px rgba(0, 0, 0, 0.2); + --box-shadow-layer: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); --box-shadow-focus: 2px 4px 4px 0 rgba(0, 0, 0, 0.14), 2px 5px 3px -2px rgba(0, 0, 0, 0.2), 2px 3px 7px 0 rgba(0, 0, 0, 0.12); @@ -53,6 +50,9 @@ $text-color: #000; --text-selection-bg: rgba(saturate(lighten(#155b4a, 20%), 20%), 1); // temp color --text-selection-color: #fff; + /* Window */ + --window-bg: var(--color-canvas); + /* Form */ --form-label-color: rgba(0, 0, 0, 0.54); @@ -80,23 +80,21 @@ $text-color: #000; --select-bg: var(--color-bg-alt); --select-color: var(--text-color); - //TODO: determine proper button variables; /* Button */ - --btn-primary-color: #fff; - --button-alt-color: var(--text-color); - --btn-primary-bg: var(--color-primary); - --btn-alt-bg: red; - --btn-radius: 10px; - // below needed? - --btn-padding: $spacing-vertical * 2/3; - --btn-height: $spacing-vertical * 1.5; - --btn-intra-margin: $spacing-vertical; + --button-bg: var(--color-bg-alt); + --button-color: #fff; + --button-primary-bg: var(--color-primary); + --button-primary-color: #fff; + --button-padding: $spacing-vertical * 2/3; + --button-height: $spacing-vertical * 1.5; + --button-intra-margin: $spacing-vertical; + --button-radius: 3px; /* Header */ --header-bg: var(--color-bg); --header-color: #666; --header-active-color: rgba(0, 0, 0, 0.85); - --header-height: 65px; + --header-height: $spacing-vertical * 2.5; --header-button-bg: transparent; //var(--button-bg); --header-button-hover-bg: rgba(100, 100, 100, 0.15); @@ -144,6 +142,7 @@ $text-color: #000; --tooltip-width: 300px; --tooltip-bg: var(--color-bg); --tooltip-color: var(--text-color); + --tooltip-border: 1px solid #aaa; /* Scrollbar */ --scrollbar-radius: 10px; diff --git a/src/renderer/scss/component/_button.scss b/src/renderer/scss/component/_button.scss index dfb8e0513..576ca4c33 100644 --- a/src/renderer/scss/component/_button.scss +++ b/src/renderer/scss/component/_button.scss @@ -1,78 +1,89 @@ -/* -TODO: -Determine [disabled] or .disabled -Add support (probably just get rid of button prefix) -*/ +@import '../mixin/link.scss'; -button { - border: none; - text-decoration: none; - cursor: pointer; +$button-focus-shift: 12%; + +.button-set-item { position: relative; -} + display: inline-block; -button:disabled.btn--disabled { - cursor: default; - background-color: transparent; -} - -button.btn { - padding: 10px; - margin: 0 5px; - border-radius: var(--btn-radius); - color: var(--btn-primary-color); - background-color: var(--btn-primary-bg); - - &:hover:not(.btn--disabled) { - box-shadow: var(--box-shadow-layer); + + .button-set-item { + margin-left: var(--button-intra-margin); } } -button.btn.btn--alt { - color: var(--btn-alt-color); - background-color: #efefef; - - &:hover { - color: #111; +.button-block, +.faux-button-block { + display: inline-block; + height: var(--button-height); + line-height: var(--button-height); + text-decoration: none; + border: 0 none; + text-align: center; + border-radius: var(--button-radius); + text-transform: uppercase; + .icon { + top: 0em; } - - &:active { - background-color: #cdcdcd; + .icon:first-child { + padding-right: 5px; } + .icon:last-child { + padding-left: 5px; + } + .icon:only-child { + padding-left: 0; + padding-right: 0; + } +} +.button-block { + cursor: pointer; + font-weight: 500; + font-size: 14px; + user-select: none; + transition: background var(--animation-duration) var(--animation-style); +} - &:disabled { - color: var(--color-help); - background-color: transparent; +.button__content { + margin: 0 var(--button-padding); + display: flex; + .link-label { + text-decoration: none !important; } } -button.btn.btn--circle { - border-radius: 50%; - transition: all 0.2s; +.button-primary { + color: var(--button-primary-color); + background-color: var(--button-primary-bg); + box-shadow: var(--box-shadow-layer); - &:hover:not([disabled]) { - border-radius: var(--btn-radius); + &:focus { + //color: var(--button-primary-active-color); + //background-color:color: var(--button-primary-active-bg); + //box-shadow: $box-shadow-focus; } } - -button.btn.btn--inverse { - box-shadow: none; - background-color: transparent; - color: var(--btn-primary-bg); +.button-alt { + background-color: var(--button-bg); + box-shadow: var(--box-shadow-layer); } -button.btn--link { - padding: 0; - margin: 0; - background-color: inherit; - font-size: 0.9em; - color: var(--btn-primary-bg); // this should be a different color +.button-text { + @include text-link(); + display: inline-block; - &:hover { - border-bottom: 1px solid; + .button__content { + margin: 0 var(--text-link-padding); } } - -.btn__label { - padding: 0 5px; +.button-text-help { + @include text-link(var(--text-help-color)); + font-size: 0.8em; +} +.button--flat { + box-shadow: none !important; +} + +.button--submit { + font-family: inherit; + line-height: 0; } diff --git a/src/renderer/scss/component/_card.scss b/src/renderer/scss/component/_card.scss index 3315b8f31..cef50a1fb 100644 --- a/src/renderer/scss/component/_card.scss +++ b/src/renderer/scss/component/_card.scss @@ -2,19 +2,194 @@ margin-left: auto; margin-right: auto; max-width: var(--card-max-width); + background: var(--card-bg); + box-shadow: var(--box-shadow-layer); border-radius: var(--card-radius); + margin-bottom: var(--card-margin); overflow: auto; user-select: text; - display: flex; + + //below added to prevent scrollbar on long titles when show page loads, would prefer a cleaner CSS solution + overflow-x: hidden; +} +.card--obscured { + position: relative; +} +.card--obscured .card__inner { + filter: blur(var(--nsfw-blur-intensity)); +} +.card__title-primary, +.card__title-identity, +.card__content, +.card__subtext, +.card__actions { + padding: 0 var(--card-padding); } -.card--placeholder { - background-color: black; +.card--small { + .card__title-primary, + .card__title-identity, + .card__actions, + .card__content, + .card__subtext { + padding: 0 calc(var(--card-padding) / 2); + } +} +.card__title-primary { + margin-top: var(--card-margin); + margin-bottom: var(--card-margin); +} +.card__title-primary .meta { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.card__title-identity { + margin: 16px 0; +} +.card__actions { + margin-top: var(--card-margin); + margin-bottom: var(--card-margin); + user-select: none; +} +.card__actions--bottom { + margin-top: $spacing-vertical * 1/3; + margin-bottom: $spacing-vertical * 1/3; + border-top: var(--divider); +} +.card__actions--form-submit { + margin-top: $spacing-vertical; + margin-bottom: var(--card-margin); +} +.card__action--right { + float: right; +} +.card__content { + margin-top: var(--card-margin); + margin-bottom: var(--card-margin); + table:not(:last-child) { + margin-bottom: var(--card-margin); + } +} + +.card__actions--only-vertical { + margin-left: 0; + margin-right: 0; + padding-left: 0; + padding-right: 0; +} + +.card__content--extra-vertical-space { + margin: $spacing-vertical 0; +} + +$font-size-subtext-multiple: 0.82; +.card__subtext { + color: var(--color-meta-light); + font-size: calc(var(--font-size-subtext-multiple) * 1em); + margin-top: $spacing-vertical * 1/3; + margin-bottom: $spacing-vertical * 1/3; +} +.card__subtext--allow-newlines { + white-space: pre-wrap; +} +.card__subtext--two-lines { + height: calc( + var(--font-size) * var(--font-size-subtext-multiple) * var(--font-line-height) * 2 + ); /*this is so one line text still has the proper height*/ +} +.card-overlay { + position: absolute; + left: 0px; + right: 0px; + top: 0px; + bottom: 0px; + padding: 20px; + background-color: var(--color-dark-overlay); + color: #fff; + display: flex; + align-items: center; + font-weight: 600; +} + +.card__link { + display: block; + cursor: pointer; +} +.card--link { + transition: transform 0.2s var(--animation-style); +} +.card--link:hover { + position: relative; + z-index: 1; + box-shadow: var(--box-shadow-focus); + transform: scale(var(--card-link-scaling)) translateX(var(--card-hover-translate)); + transform-origin: 50% 50%; + overflow-x: visible; + overflow-y: visible; +} +.card--link:hover ~ .card--link { + transform: translateX(calc(var(--card-hover-translate) * 2)); +} + +.card__media { + background-size: cover; + background-repeat: no-repeat; + background-position: 50% 50%; +} + +.card__media--autothumb { + position: relative; +} +.card__media--autothumb.purple { + background-color: #9c27b0; +} +.card__media--autothumb.red { + background-color: #e53935; +} +.card__media--autothumb.pink { + background-color: #e91e63; +} +.card__media--autothumb.indigo { + background-color: #3f51b5; +} +.card__media--autothumb.blue { + background-color: #2196f3; +} +.card__media--autothumb.light-blue { + background-color: #039be5; +} +.card__media--autothumb.cyan { + background-color: #00acc1; +} +.card__media--autothumb.teal { + background-color: #009688; +} +.card__media--autothumb.green { + background-color: #43a047; +} +.card__media--autothumb.yellow { + background-color: #ffeb3b; +} +.card__media--autothumb.orange { + background-color: #ffa726; +} + +.card__media--autothumb .card__autothumb__text { + font-size: 2em; + width: 100%; + color: #ffffff; + text-align: center; + position: absolute; + top: 36%; +} + +.card__indicators { + float: right; } .card--small { width: var(--card-small-width); - min-height: var(--card-small-width); overflow-x: hidden; white-space: normal; } @@ -22,237 +197,126 @@ height: calc(var(--card-small-width) * 9 / 16); } -.card__link { - cursor: pointer; - - // TODO: hover animations - // :hover { - // - // } -} - -.card__media { - background-size: cover; - background-repeat: no-repeat; - background-position: 50% 50%; - background-color: var(--color-placeholder); -} - -.card__media--autothumb { - display: flex; - justify-content: center; - align-items: center; -} - -.card__title-identity { - margin-top: $spacing-vertical * 1/3; -} - -// TODO: regular .card__title for show page -.card__title--small { - font-weight: 600; - font-size: 0.9em; +.card--form { + width: calc(var(--input-width) + var(--card-padding) * 2); } .card__subtitle { color: var(--color-help); font-size: 0.85em; - padding-top: $spacing-vertical * 1/3; + line-height: calc(var(--font-line-height) * 1 / 0.85); } -// .card__title-primary .meta { -// white-space: nowrap; -// overflow: hidden; -// text-overflow: ellipsis; -// } -// +.card--file-subtitle { + display: flex; +} -// -// .card__actions { -// margin-top: var(--card-margin); -// margin-bottom: var(--card-margin); -// user-select: none; -// } -// -// .card__actions--bottom { -// margin-top: $spacing-vertical * 1/3; -// margin-bottom: $spacing-vertical * 1/3; -// border-top: var(--divider); -// } -// -// .card__actions--form-submit { -// margin-top: $spacing-vertical; -// margin-bottom: var(--card-margin); -// } -// -// .card__action--right { -// float: right; -// } -// -// .card__content { -// margin-top: var(--card-margin); -// margin-bottom: var(--card-margin); -// table:not(:last-child) { -// margin-bottom: var(--card-margin); -// } -// } -// -// .card__actions--only-vertical { -// margin-left: 0; -// margin-right: 0; -// padding-left: 0; -// padding-right: 0; -// } -// -// .card__content--extra-vertical-space { -// margin: $spacing-vertical 0; -// } -// -// $font-size-subtext-multiple: 0.82; -// .card__subtext { -// color: var(--color-meta-light); -// font-size: calc(var(--font-size-subtext-multiple) * 1em); -// margin-top: $spacing-vertical * 1/3; -// margin-bottom: $spacing-vertical * 1/3; -// } -// .card__subtext--allow-newlines { -// white-space: pre-wrap; -// } -// .card__subtext--two-lines { -// height: calc( -// var(--font-size) * var(--font-size-subtext-multiple) * var(--font-line-height) * 2 -// ); /*this is so one line text still has the proper height*/ -// } -// .card-overlay { -// position: absolute; -// left: 0px; -// right: 0px; -// top: 0px; -// bottom: 0px; -// padding: 20px; -// background-color: var(--color-dark-overlay); -// color: #fff; -// display: flex; -// align-items: center; -// font-weight: 600; -// } -// -// -// .card__media--autothumb { -// position: relative; -// } -// .card__media--autothumb.purple { -// background-color: #9c27b0; -// } -// .card__media--autothumb.red { -// background-color: #e53935; -// } -// .card__media--autothumb.pink { -// background-color: #e91e63; -// } -// .card__media--autothumb.indigo { -// background-color: #3f51b5; -// } -// .card__media--autothumb.blue { -// background-color: #2196f3; -// } -// .card__media--autothumb.light-blue { -// background-color: #039be5; -// } -// .card__media--autothumb.cyan { -// background-color: #00acc1; -// } -// .card__media--autothumb.teal { -// background-color: #009688; -// } -// .card__media--autothumb.green { -// background-color: #43a047; -// } -// .card__media--autothumb.yellow { -// background-color: #ffeb3b; -// } -// .card__media--autothumb.orange { -// background-color: #ffa726; -// } -// -// .card__media--autothumb .card__autothumb__text { -// font-size: 2em; -// width: 100%; -// color: #ffffff; -// text-align: center; -// position: absolute; -// top: 36%; -// } -// -// .card--form { -// width: calc(var(--input-width) + var(--card-padding) * 2); -// } -// +// this is too specific +// it should be a helper class +// ex. ".m-padding-left" +// will come back to this during the redesign - sean +.card__publish-date { + padding-left: 20px; +} -// -// .card-series-submit { -// margin-left: auto; -// margin-right: auto; -// max-width: var(--card-max-width); -// padding: $spacing-vertical / 2; -// } +.card-series-submit { + margin-left: auto; + margin-right: auto; + max-width: var(--card-max-width); + padding: $spacing-vertical / 2; +} -/* - .card-row is used on the discover page - It is a list of cards that extend past the right edge of the screen - There are left/right arrows to scroll the cards and view hidden content -*/ .card-row { + + .card-row { + margin-top: $spacing-vertical * 1/3; + } +} + +.card-row__placeholder { + padding-bottom: $spacing-vertical; +} + +$padding-top-card-hover-hack: 20px; +$padding-right-card-hover-hack: 30px; + +.card-row__items { + width: 100%; + overflow: hidden; + + /*hacky way to give space for hover */ + padding-top: $padding-top-card-hover-hack; + margin-top: -1 * $padding-top-card-hover-hack; + padding-right: $padding-right-card-hover-hack; + margin-right: -1 * $padding-right-card-hover-hack; + > .card { + vertical-align: top; + display: inline-block; + } + > .card + .card { + margin-left: 16px; + } +} + +.card-row--small { overflow: hidden; white-space: nowrap; width: 100%; min-width: var(--card-small-width); - padding-top: $spacing-vertical; + margin-right: $spacing-vertical; } - .card-row__header { - display: flex; - flex-direction: row; - justify-content: space-between; - // specific padding-left styling is needed here - // this needs to be used on a page with noPadding - // doing so allows the content to scroll to the edge of the screen - padding-left: $spacing-vertical * 2/3; -} - -.card-row__title { - display: flex; - align-items: center; + margin-bottom: 16px; } .card-row__scrollhouse { - padding-top: $spacing-vertical * 2/3; - overflow: hidden; + position: relative; + /*hacky way to give space for hover */ + padding-right: $padding-right-card-hover-hack; +} - .card { - display: inline-block; - vertical-align: top; - margin-left: $spacing-vertical * 2/3; - } +.card-row__nav { + position: absolute; + padding: 0 var(--card-margin); + height: 100%; + top: calc($padding-top-card-hover-hack - var(--card-margin)); +} +.card-row__nav .card-row__scroll-button { + background: var(--card-bg); + color: var(--color-help); + box-shadow: var(--box-shadow-layer); + padding: $spacing-vertical $spacing-vertical / 2; + position: absolute; + cursor: pointer; + left: 0; + top: 36%; + z-index: 2; + opacity: 0.8; + transition: transform 0.2s var(--animation-style); - .card:last-of-type { - padding-right: $spacing-vertical * 2/3; + &:hover { + opacity: 1; + transform: scale(calc(var(--card-link-scaling) * 1.1)); } } +.card-row__nav--left { + left: 0; +} +.card-row__nav--right { + right: 0; +} /* if we keep doing things like this, we should add a real grid system, but I'm going to be a selective dick about it - Jeremy */ -//TODO: css grid -// .card-grid { -// $margin-card-grid: $spacing-vertical * 2/3; -// display: flex; -// flex-wrap: wrap; -// > .card { -// width: $width-page-constrained / 2 - $margin-card-grid / 2; -// flex-grow: 1; -// } -// > .card:nth-of-type(2n - 1):not(:last-child) { -// margin-right: $margin-card-grid; -// } -// } +.card-grid { + $margin-card-grid: $spacing-vertical * 2/3; + display: flex; + flex-wrap: wrap; + > .card { + width: $width-page-constrained / 2 - $margin-card-grid / 2; + flex-grow: 1; + } + > .card:nth-of-type(2n - 1):not(:last-child) { + margin-right: $margin-card-grid; + } +} diff --git a/src/renderer/scss/component/_channel-indicator.scss b/src/renderer/scss/component/_channel-indicator.scss index 2291cc933..7c437780c 100644 --- a/src/renderer/scss/component/_channel-indicator.scss +++ b/src/renderer/scss/component/_channel-indicator.scss @@ -5,6 +5,12 @@ text-overflow: ellipsis; } +// this shouldn't know about the card width +// will come back to this for the redesign - sean +.channel-name--small { + width: calc(var(--card-small-width) * 2 / 3); +} + .channel-indicator__icon--invalid { color: var(--color-error); } diff --git a/src/renderer/scss/component/_header.scss b/src/renderer/scss/component/_header.scss index ca07bcc13..a8967d0eb 100644 --- a/src/renderer/scss/component/_header.scss +++ b/src/renderer/scss/component/_header.scss @@ -1,60 +1,64 @@ #header { + color: var(--header-color); + background: var(--header-bg); display: flex; align-items: center; + justify-content: space-around; position: fixed; + box-shadow: var(--box-shadow-layer); top: 0; left: 0; width: 100%; - height: var(--header-height); z-index: 3; + padding: $spacing-vertical / 2; box-sizing: border-box; - color: var(--header-color); - background-color: var(--header-bg); } - -.header__actions-left { - display: flex; - padding: 0 5px; -} - -.header__actions-right { - margin-left: auto; -} - -.header__wunderbar { - flex: 1; - max-width: 325px; - min-width: 175px; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - height: 100%; - display: flex; - align-items: center; - padding: 10px 5px; - cursor: text; -} - -.wunderbar__input { - height: 50%; - width: 100%; - color: var(--search-color); - padding: 10px; - background-color: #f3f3f3; - border-radius: 10px; - font-size: 0.9em; - - &:focus { - // TODO: focus style +.header__item { + padding-left: $spacing-vertical / 4; + padding-right: $spacing-vertical / 4; + .button-alt { + background: var(--header-button-bg) !important; + font-size: 1em; + } + .button-alt:hover { + background: var(--header-button-hover-bg) !important; } } -.wunderbar__suggestion { - padding: 5px; - background-color: var(--header-bg); - cursor: pointer; +.header__item--wunderbar { + flex-grow: 1; } -.wunderbar__active-suggestion { - background-color: #a3ffb0; +.wunderbar { + position: relative; + .icon { + position: absolute; + left: 10px; + top: $spacing-vertical / 2 - 4px; //hacked + } +} + +.wunderbar--active .icon-search { + color: var(--color-primary); +} + +// below styles should be inside the common input styling +// will come back to this with the redesign - sean +.wunderbar__input { + background: var(--search-bg); + width: 100%; + color: var(--search-color); + height: $spacing-vertical * 1.5; + line-height: $spacing-vertical * 1.5; + padding-left: 38px; + padding-right: 5px; + border-radius: 2px; + border: var(--search-border); + transition: box-shadow var(--transition-duration) var(--transition-type); + &:focus { + background: var(--search-active-bg); + color: var(--search-active-color); + box-shadow: var(--search-active-shadow); + border-color: var(--color-primary); + } } diff --git a/src/renderer/scss/component/_tooltip.scss b/src/renderer/scss/component/_tooltip.scss index 1448fd590..d017996c1 100644 --- a/src/renderer/scss/component/_tooltip.scss +++ b/src/renderer/scss/component/_tooltip.scss @@ -2,7 +2,10 @@ .tooltip { position: relative; - padding: 0 $spacing-vertical / 3; +} + +.tooltip__link { + @include text-link(); } .tooltip__body { @@ -14,15 +17,16 @@ box-sizing: border-box; padding: $spacing-vertical / 2; width: var(--tooltip-width); + border: var(--tooltip-border); color: var(--tooltip-color); background-color: var(--tooltip-bg); font-size: calc(var(--font-size) * 7/8); line-height: var(--font-line-height); box-shadow: var(--box-shadow-layer); - border-radius: var(--card-radius); } -.tooltip__link { +.tooltip--header .tooltip__link { + @include text-link(#aaa); font-size: calc(var(--font-size) * 3/4); margin-left: var(--button-padding); vertical-align: middle; diff --git a/static/font/metropolis/Metropolis-BlackItalic.woff2 b/static/font/metropolis/Metropolis-BlackItalic.woff2 deleted file mode 100755 index 942bf6452475ce67ebd0e2b7e3e7c6ddd718a467..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17292 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 diff --git a/static/font/metropolis/Metropolis-Bold.woff2 b/static/font/metropolis/Metropolis-Bold.woff2 deleted file mode 100755 index 54bb59f65767d35360b16b0a4dd8903dcfd0e725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16728 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 diff --git a/static/font/metropolis/Metropolis-BoldItalic.woff2 b/static/font/metropolis/Metropolis-BoldItalic.woff2 deleted file mode 100755 index dbb3f04255b2ebe17336431a8e77edca3a51634e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17268 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 bWhJ)Vo@kABt!C(Y>%jUt#(&MH6_siLY|D{3 diff --git a/static/font/metropolis/Metropolis-Medium.woff2 b/static/font/metropolis/Metropolis-Medium.woff2 deleted file mode 100755 index d5aabb6e99e2d24ea957b07536078147c99f250b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16496 zcmV(_K-9l?Pew9NR8&s@06=g63;+NC09|YV06-o90RR9100000000000000000000 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 bzobJFFaj&@=eJ01T*k2v8HXaj761SM#%TxI diff --git a/static/font/metropolis/Metropolis-MediumItalic.woff2 b/static/font/metropolis/Metropolis-MediumItalic.woff2 deleted file mode 100755 index 506fb07b10610aeb66e11e24175e8319288e6526..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17536 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 f(LIgOMUg zHmMUqNqSHA|9?j`Wb7WsoLVJPNOZ5+GBe{cr^anrh&u&#)w7}RhFuWCozs*qNIA8a znn~V8om^{~W$V!rpS`Yk_Ax!O=x2fR98d*f0n@+$d;nry==OGxe1QZ=fDGUPet>S5 z@8$pF#sN4$0}22jFM00*Bp@LF0`(~+;?vLt-`_NkGDwmL2!RlYT~G?jA7}so?yeG6 zQ_%BhhO)SpCjcCh6ixp5XTSg7T>IR2-$z_CoS1M&~`bj(?r`=iaS03k$&lo2VRGu(oi+C^CnkhapO7p%oF@-bj3&i+6B`r)~aw z2OM#D+)*V07N7_!Dkd0F-?>ViF4&)|bZIPDrgIgp%ei*pqFp5W-@osCbFV@nZOiqi zKndSx-~o}v=er42B{y&_yTGdLm?p3hPW-C+t0=0y?BDhf@{y8o7)5!6#R((`;}QD* z3{oweNpgGN_Mtp8MW7H81pC{YRT9~GOD)wgM-Fn3cR+qaxTRF3s2kgO1rAW--~8{% zw*PmkJ>9=%S9Mi!-r>K3ni7p0-#MsN<_v%A9S3g{b}yiHhCFA2ILAi*3-<6 zZRa?-OMiEHNhuwq#MvMHWmFy@Nnke#%$_|71tjF0pVat&>dJP8bpVGDI^5yD(;u<# zF~d5Hv=>Gf1-|!Aa-3oBy_GK1wMI@1I565MoB&7G3D%LKbkUaguBr^FOZ4&VizGOr z9cY7WtDBU~-G`AQR)nKcV&K_tZR<;zu`aeUpvCX8D;g!8(r_*dw!$#S3>Ncsh0e_j!#mWsa$~aRku*h<2ZMN4*7hKcksaHPu?(Zy!LqXD1=`&?5 zzSOcStycr9Y*aN(?yJ7*dMRb6ti0-4yINZhdtGPW(jorm2q7tH=~zUFV_+ANR?^UQ z+t)5ik|9r-D$NMGMCVWY6e4LJ`DDyeWO3=T<}KF!63Tc@yyFYba5sS!&b#b6<8&Wv zRou7mXde9c3WFZ5uj0_Lg0+~nX6mZ<`f5z+P}8mbW0n&fTTTfO!%s{bIWRG*kf_houMU zMzGX@Z`d1Trx|FB&%!|$&TEY@m4XwPbcvOI}GYbg@rXpgu9%gLI=&-Zq9k$WD!~os0Q>s#Qwp3oy zdIUiqBnsGQN^@sGFp^PMVa}6j3dX}@qU=x{o=&~b%~Hq*HKFz7#|A=$\a(kO#a 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 DOv4G* diff --git a/static/font/metropolis/Metropolis-SemiBoldItalic.woff2 b/static/font/metropolis/Metropolis-SemiBoldItalic.woff2 deleted file mode 100755 index 94df7d35e59494b90799e9acf05986f3418b32ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17372 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 WFmMoCho&N0`L~I2-u+L2q6Gj_)h53H diff --git a/static/font/metropolis/Metropolis-ThinItalic.woff2 b/static/font/metropolis/Metropolis-ThinItalic.woff2 deleted file mode 100755 index 85491c2e246cd3e16dafe5956f2e0c0f2c916f2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17144 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 diff --git a/yarn.lock b/yarn.lock index 02f395c04..35e76177e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2661,10 +2661,6 @@ dom-converter@~0.1: dependencies: utila "~0.3" -dom-scroll-into-view@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz#e8f36732dd089b0201a88d7815dc3f88e6d66c7e" - dom-serializer@0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"

du4>OI*0;zczNS;`)rV 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 diff --git a/static/font/metropolis/Metropolis-ExtraBold.woff2 b/static/font/metropolis/Metropolis-ExtraBold.woff2 deleted file mode 100755 index d3ce18b1d19524282605dd1199e31d5a22e3dc8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16452 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 diff --git a/static/font/metropolis/Metropolis-ExtraBoldItalic.woff2 b/static/font/metropolis/Metropolis-ExtraBoldItalic.woff2 deleted file mode 100755 index 21d8ab53eb4baf6923ddbad261f61ea4e9595f03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17424 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 Tr|Hh%ntihG+@IY4buj<{^`OYB diff --git a/static/font/metropolis/Metropolis-ExtraLight.woff2 b/static/font/metropolis/Metropolis-ExtraLight.woff2 deleted file mode 100755 index 993d8c421305c78f58b2682e1dc4edd194021fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16400 zcmV+rK<~eIPew9NR8&s@06-7`3;+NC09@1n06)P10RR9100000000000000000000 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%0Af~IX`*}o=L9-&^2v&?l$&Bdk*Fp(K#iz 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 diff --git a/static/font/metropolis/Metropolis-ExtraLightItalic.woff2 b/static/font/metropolis/Metropolis-ExtraLightItalic.woff2 deleted file mode 100755 index deffa671b045a56f9b64a4763b1df01315a1d460..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17392 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∾@f=V$3|ac&H1C>H?FBA07#7d zeBpjUSpqrixc*{H9vw0PTJGRpS2c67(0id>o0BTi%I#fghD)!0nXx!lb;|J8^f?hZ)pk%;Xi6Wn-)ffse72?@~qnMtpv~46% zN@yoz2bm~iXb&@0%pGRo2unvP)v{5?+A%K9aCTZ5zCpZQ=IbgSSEyYV;3j`J1iLH9 z9Z{OaXcehRv=#|EE%ekPOZ7|j!ZObz)1>?!mO`Z#BAHyN7GW093JboSaiGfqTn3ods)#ejCjeZi6-NsKp~?xV8l*n!CoV0T68w0apYh||;nAC0gJSzcdC?F#rQ35?e zdz^C&X`87yHmbs15A#d2(iO=;Qup12svf+SLbQIe;i zC{r>yx?RD@&us+@DN6;|%f#w@PS_eudanK6d z%}%G4_UoTZL1-&>V1VsGDmgo(itSQ5(BX2Tq92CkI}6Z&ekce8YOiqj{bZ7IpE!x3 zh$^SuWMO9ywKm40vNFqwy)cgIZI)DQoVVYMV<%D<4o$EJWRqm0+QjW9+ut!{UU5+W zOpfU#r)Qkup6kG)wDCrMWiglTe)m6W4*&oFZJzc1 diff --git a/static/font/metropolis/Metropolis-LightItalic.woff2 b/static/font/metropolis/Metropolis-LightItalic.woff2 deleted file mode 100755 index f3c0e4095a8bbd9de6b36509b1ba8785236dc6e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17380 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