Merge pull request #794 from coralproject/fix-vc

Mobile and Touch Events for Featured Tags/ Viewing Options
This commit is contained in:
Kim Gardner
2017-07-25 16:45:56 -04:00
committed by GitHub
8 changed files with 70 additions and 9 deletions
@@ -14,7 +14,7 @@
.filterWrapper {
position: absolute;
right: 0;
margin-top: 6px;
margin-top: 4px;
}
.highlightedContainer {
@@ -26,4 +26,4 @@
margin-top: 28px;
padding-bottom: 50px;
min-height: 600px;
}
}
+10
View File
@@ -68,3 +68,13 @@
pointer-events: none;
}
@custom-media --small-viewport (max-width: 320px);
@media (--small-viewport) {
.buttonSub, .buttonSubActive, .buttonSubActive:hover, .buttonSubActive:focus {
font-size: 0.96em;
padding-right: 5px;
padding-right: 5px;
}
}
@@ -5,6 +5,10 @@
composes: buttonReset from "coral-framework/styles/reset.css";
}
.button:hover {
cursor: pointer;
}
.list {
background: white;
position: absolute;
@@ -29,3 +33,27 @@
font-size: 14px;
vertical-align: middle;
}
@custom-media --small-viewport (max-width: 425px);
.filterText {
display: inline-block;
}
.filterIcon {
vertical-align: middle;
display: none;
}
@media (--small-viewport) {
.filterText {
display: none;
}
.filterIcon {
display: inline-block;
}
}
@@ -1,8 +1,9 @@
import React from 'react';
import cn from 'classnames';
import styles from './ViewingOptions.css';
import {Slot, ClickOutside} from 'plugin-api/beta/client/components';
import {t} from 'plugin-api/beta/client/services';
import {Icon} from 'plugin-api/beta/client/components/ui';
import {Slot, ClickOutside} from 'plugin-api/beta/client/components';
const ViewingOptions = (props) => {
const toggleOpen = () => {
@@ -23,7 +24,9 @@ const ViewingOptions = (props) => {
<ClickOutside onClickOutside={handleClickOutside}>
<div className={cn([styles.root, 'coral-plugin-viewing-options'])}>
<div>
<button className={styles.button} onClick={toggleOpen}>Viewing Options
<button className={styles.button} onClick={toggleOpen}>
<Icon className={styles.filterIcon} name="filter_list" />
<span className={styles.filterText}>{t('viewing_options')}</span>
{props.open ? <Icon name="arrow_drop_up" className={styles.icon}/> : <Icon name="arrow_drop_down" className={styles.icon}/>}
</button>
</div>
@@ -1,9 +1,11 @@
import ViewingOptions from './containers/ViewingOptions';
import reducer from './reducer';
import translations from './translations.yml';
export default {
reducer,
slots: {
streamFilter: [ViewingOptions]
}
},
translations
};
@@ -0,0 +1,4 @@
en:
viewing_options: "Viewing Options"
es:
viewing_options: "Opciones de visualización"
@@ -24,6 +24,15 @@
cursor: pointer;
}
.noSelect {
-ms-user-select:none;
-moz-user-select: none;
-webkit-user-select: none;
-webkit-touch-callout:none;
user-select: none;
-webkit-tap-highlight-color:rgba(0,0,0,0);
}
.tooltip {
top: 36px;
left: auto;
@@ -15,13 +15,15 @@ export default class Tag extends React.Component {
}
showTooltip = () => {
showTooltip = e => {
e.preventDefault();
this.setState({
tooltip: true
});
}
hideTooltip = () => {
hideTooltip = (e) => {
e.preventDefault();
this.setState({
tooltip: false
});
@@ -30,10 +32,13 @@ export default class Tag extends React.Component {
render() {
const {tooltip} = this.state;
return(
<div onMouseEnter={this.showTooltip} onMouseLeave={this.hideTooltip} >
<div className={styles.noSelect} onMouseEnter={this.showTooltip}
onMouseLeave={this.hideTooltip} onTouchStart={this.showTooltip}
onTouchEnd={this.hideTooltip}>
{
isTagged(this.props.comment.tags, 'FEATURED') ? (
<span className={cn(styles.tag, {[styles.on]: tooltip})}>
<span
className={cn(styles.tag, styles.noSelect, {[styles.on]: tooltip})}>
{t('talk-plugin-featured-comments.featured')}
</span>
) : null