commit
16a7782b7a
9 changed files with 118 additions and 50 deletions
|
@ -57,7 +57,7 @@ class ToolTip extends React.PureComponent<Props, State> {
|
||||||
ref={ref => {
|
ref={ref => {
|
||||||
this.tooltip = ref;
|
this.tooltip = ref;
|
||||||
}}
|
}}
|
||||||
className={classnames('card tooltip__body', {
|
className={classnames('tooltip__body', {
|
||||||
'tooltip__body--short': isShortDescription,
|
'tooltip__body--short': isShortDescription,
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
|
|
|
@ -59,7 +59,7 @@ class InviteList extends React.PureComponent<Props> {
|
||||||
showClaimable && (
|
showClaimable && (
|
||||||
<RewardLink
|
<RewardLink
|
||||||
button
|
button
|
||||||
label={__(`Claim Your ${40 || rewardAmount} LBC Invite Reward`)}
|
label={__(`Claim Your ${rewardAmount} LBC Invite Reward`)}
|
||||||
reward_type={rewards.TYPE_REFERRAL}
|
reward_type={rewards.TYPE_REFERRAL}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
|
@ -29,6 +29,7 @@ class SideBar extends React.PureComponent<Props> {
|
||||||
<li
|
<li
|
||||||
className={classnames('navigation__link', {
|
className={classnames('navigation__link', {
|
||||||
'navigation__link--active': active,
|
'navigation__link--active': active,
|
||||||
|
'navigation__link--guide': guide,
|
||||||
})}
|
})}
|
||||||
key={label}
|
key={label}
|
||||||
>
|
>
|
||||||
|
|
|
@ -9,6 +9,7 @@ import {
|
||||||
doSearch,
|
doSearch,
|
||||||
doToast,
|
doToast,
|
||||||
} from 'lbry-redux';
|
} from 'lbry-redux';
|
||||||
|
import { Lbryio } from 'lbryinc';
|
||||||
import { makeSelectClientSetting } from 'redux/selectors/settings';
|
import { makeSelectClientSetting } from 'redux/selectors/settings';
|
||||||
import * as settings from 'constants/settings';
|
import * as settings from 'constants/settings';
|
||||||
import { doNavigate } from 'redux/actions/navigation';
|
import { doNavigate } from 'redux/actions/navigation';
|
||||||
|
@ -34,6 +35,8 @@ const perform = dispatch => ({
|
||||||
onSearch: (query, size) => {
|
onSearch: (query, size) => {
|
||||||
dispatch(doSearch(query, size));
|
dispatch(doSearch(query, size));
|
||||||
dispatch(doNavigate(`/search`, { query }));
|
dispatch(doNavigate(`/search`, { query }));
|
||||||
|
// Ideally this would live inside doSearch, but lbry-redux does not have access to lbryinc
|
||||||
|
Lbryio.call('event', 'search');
|
||||||
},
|
},
|
||||||
onSubmit: (uri, extraParams) => dispatch(doNavigate('/show', { uri, ...extraParams })),
|
onSubmit: (uri, extraParams) => dispatch(doNavigate('/show', { uri, ...extraParams })),
|
||||||
updateSearchQuery: query => dispatch(doUpdateSearchQuery(query)),
|
updateSearchQuery: query => dispatch(doUpdateSearchQuery(query)),
|
||||||
|
|
|
@ -170,7 +170,15 @@ class FilePage extends React.Component<Props> {
|
||||||
|
|
||||||
<div className="media__properties media__properties--large">
|
<div className="media__properties media__properties--large">
|
||||||
{isRewardContent && (
|
{isRewardContent && (
|
||||||
<Icon size={20} iconColor="red" tooltip="bottom" icon={icons.FEATURED} />
|
<Icon
|
||||||
|
size={20}
|
||||||
|
iconColor="red"
|
||||||
|
icon={icons.FEATURED}
|
||||||
|
// Figure out how to get the tooltip to overlap the navbar on the file page and I will love you
|
||||||
|
// https://stackoverflow.com/questions/6421966/css-overflow-x-visible-and-overflow-y-hidden-causing-scrollbar-issue
|
||||||
|
// https://spee.ch/4/overflow-issue
|
||||||
|
// tooltip="bottom"
|
||||||
|
/>
|
||||||
)}
|
)}
|
||||||
{metadata.nsfw && <div className="badge badge--nsfw">NSFW</div>}
|
{metadata.nsfw && <div className="badge badge--nsfw">NSFW</div>}
|
||||||
<FilePrice badge uri={normalizeURI(uri)} />
|
<FilePrice badge uri={normalizeURI(uri)} />
|
||||||
|
|
|
@ -6,6 +6,7 @@ import type {
|
||||||
UpdatePublishFormAction,
|
UpdatePublishFormAction,
|
||||||
PublishParams,
|
PublishParams,
|
||||||
} from 'redux/reducers/publish';
|
} from 'redux/reducers/publish';
|
||||||
|
import { CC_LICENSES, COPYRIGHT, OTHER, NONE, PUBLIC_DOMAIN } from 'constants/licenses';
|
||||||
import * as MODALS from 'constants/modal_types';
|
import * as MODALS from 'constants/modal_types';
|
||||||
import {
|
import {
|
||||||
ACTIONS,
|
ACTIONS,
|
||||||
|
@ -18,12 +19,12 @@ import {
|
||||||
selectMyClaimsWithoutChannels,
|
selectMyClaimsWithoutChannels,
|
||||||
doError,
|
doError,
|
||||||
} from 'lbry-redux';
|
} from 'lbry-redux';
|
||||||
|
import { Lbryio } from 'lbryinc';
|
||||||
import { doOpenModal } from 'redux/actions/app';
|
import { doOpenModal } from 'redux/actions/app';
|
||||||
import { selectosNotificationsEnabled } from 'redux/selectors/settings';
|
import { selectosNotificationsEnabled } from 'redux/selectors/settings';
|
||||||
import { doNavigate } from 'redux/actions/navigation';
|
import { doNavigate } from 'redux/actions/navigation';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import { CC_LICENSES, COPYRIGHT, OTHER, NONE, PUBLIC_DOMAIN } from 'constants/licenses';
|
|
||||||
|
|
||||||
type Action = UpdatePublishFormAction | { type: ACTIONS.CLEAR_PUBLISH };
|
type Action = UpdatePublishFormAction | { type: ACTIONS.CLEAR_PUBLISH };
|
||||||
|
|
||||||
|
@ -273,6 +274,8 @@ export const doPublish = (params: PublishParams) => (
|
||||||
dispatch({ type: ACTIONS.PUBLISH_START });
|
dispatch({ type: ACTIONS.PUBLISH_START });
|
||||||
|
|
||||||
const success = pendingClaim => {
|
const success = pendingClaim => {
|
||||||
|
Lbryio.call('event', 'publish');
|
||||||
|
|
||||||
const actions = [];
|
const actions = [];
|
||||||
|
|
||||||
actions.push({
|
actions.push({
|
||||||
|
|
|
@ -45,3 +45,25 @@
|
||||||
transform: scaleY(1);
|
transform: scaleY(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@keyframes bounce {
|
||||||
|
0% {
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
10% {
|
||||||
|
width: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
20% {
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
30% {
|
||||||
|
width: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
40% {
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -61,11 +61,12 @@
|
||||||
transition: color 0.2s;
|
transition: color 0.2s;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
color: $lbry-gray-5;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
width: 0;
|
||||||
background-color: $lbry-teal-3;
|
background-color: $lbry-teal-3;
|
||||||
content: '';
|
content: '';
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
@ -73,14 +74,6 @@
|
||||||
transition: width 0.2s;
|
transition: width 0.2s;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:not(.navigation__link--active):not(.navigation__link--title) {
|
|
||||||
color: $lbry-gray-5;
|
|
||||||
|
|
||||||
&::before {
|
|
||||||
width: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:not(.navigation__link--title):hover,
|
&:not(.navigation__link--title):hover,
|
||||||
&.navigation__link--active {
|
&.navigation__link--active {
|
||||||
color: $lbry-black;
|
color: $lbry-black;
|
||||||
|
@ -93,6 +86,18 @@
|
||||||
width: 0.5rem;
|
width: 0.5rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.navigation__link--guide:not(:hover) {
|
||||||
|
color: rgba($lbry-black, 0.75);
|
||||||
|
|
||||||
|
html[data-theme='dark'] {
|
||||||
|
color: rgba($lbry-white, 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
animation: bounce 1.75s infinite;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.navigation__link--title {
|
.navigation__link--title {
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
.tooltip {
|
.tooltip {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
|
||||||
|
|
||||||
.tooltip__body {
|
.tooltip__body {
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,16 +18,18 @@
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
color: $lbry-black;
|
color: $lbry-black;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
padding: var(--spacing-vertical-small);
|
padding: var(--spacing-vertical-miniscule);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
width: 200px;
|
width: 200px;
|
||||||
|
background-color: $lbry-white;
|
||||||
|
border: 1px solid $lbry-gray-1;
|
||||||
box-shadow: 5px 5px 5px rgba($lbry-black, 0.15);
|
box-shadow: 5px 5px 5px rgba($lbry-black, 0.15);
|
||||||
|
border-radius: 0.5rem;
|
||||||
|
|
||||||
html[data-theme='dark'] & {
|
&.tooltip__body--short {
|
||||||
border: 1px solid #2f2f2f;
|
width: 110px;
|
||||||
background-color: $lbry-gray-1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
|
@ -38,9 +41,39 @@
|
||||||
content: ' ';
|
content: ' ';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
&.tooltip__body--short {
|
$tooltip-border: $lbry-gray-5;
|
||||||
width: 130px;
|
&.tooltip--bottom .tooltip__body::after {
|
||||||
|
border-color: transparent transparent $tooltip-border transparent;
|
||||||
|
}
|
||||||
|
&.tooltip--left .tooltip__body::after {
|
||||||
|
border-color: transparent transparent transparent $tooltip-border;
|
||||||
|
}
|
||||||
|
&.tooltip--right .tooltip__body::after {
|
||||||
|
border-color: transparent $tooltip-border transparent transparent;
|
||||||
|
}
|
||||||
|
&.tooltip--top .tooltip__body::after {
|
||||||
|
border-color: $tooltip-border transparent transparent transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[data-theme='dark'] & {
|
||||||
|
.tooltip__body {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
$tooltip-border: $lbry-white;
|
||||||
|
|
||||||
|
&.tooltip--bottom .tooltip__body::after {
|
||||||
|
border-color: transparent transparent $tooltip-border transparent;
|
||||||
|
}
|
||||||
|
&.tooltip--left .tooltip__body::after {
|
||||||
|
border-color: transparent transparent transparent $tooltip-border;
|
||||||
|
}
|
||||||
|
&.tooltip--right .tooltip__body::after {
|
||||||
|
border-color: transparent $tooltip-border transparent transparent;
|
||||||
|
}
|
||||||
|
&.tooltip--top .tooltip__body::after {
|
||||||
|
border-color: $tooltip-border transparent transparent transparent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,24 +84,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tooltip--bottom .tooltip__body {
|
|
||||||
top: 90%;
|
|
||||||
left: 50%;
|
|
||||||
margin-left: -100px;
|
|
||||||
|
|
||||||
&.tooltip__body--short {
|
|
||||||
margin-left: -65px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&::after {
|
|
||||||
bottom: 100%;
|
|
||||||
left: 50%;
|
|
||||||
|
|
||||||
border-color: transparent transparent $lbry-gray-5 transparent;
|
|
||||||
margin-left: -5px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.tooltip--label {
|
.tooltip--label {
|
||||||
// When there is a label for the tooltip and not just using a button or icon
|
// When there is a label for the tooltip and not just using a button or icon
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
@ -79,7 +94,8 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tooltip--on-component {
|
.tooltip--on-component,
|
||||||
|
.tooltip--icon {
|
||||||
.tooltip__body {
|
.tooltip__body {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
@ -92,39 +108,49 @@
|
||||||
&::after {
|
&::after {
|
||||||
top: 17px;
|
top: 17px;
|
||||||
left: 100%;
|
left: 100%;
|
||||||
|
|
||||||
border-color: transparent transparent transparent $lbry-gray-5;
|
|
||||||
margin-top: -5px;
|
margin-top: -5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tooltip--right .tooltip__body {
|
.tooltip--right .tooltip__body {
|
||||||
margin-top: -30px;
|
margin-top: -28px;
|
||||||
margin-left: 110%;
|
margin-left: 110%;
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
top: 17px;
|
top: 14px;
|
||||||
right: 100%; // To the left of the tooltip
|
right: 100%; // To the left of the tooltip
|
||||||
|
|
||||||
border-color: transparent $lbry-gray-5 transparent transparent;
|
|
||||||
margin-top: -5px;
|
margin-top: -5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tooltip--top .tooltip__body {
|
.tooltip--bottom .tooltip__body {
|
||||||
bottom: 100%;
|
top: 90%;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
margin-left: -100px;
|
margin-left: -100px;
|
||||||
|
|
||||||
&.tooltip__body--short {
|
&.tooltip__body--short {
|
||||||
margin-left: -65px;
|
margin-left: -56px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
bottom: 100%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tooltip--top .tooltip__body {
|
||||||
|
bottom: 120%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -100px;
|
||||||
|
|
||||||
|
&.tooltip__body--short {
|
||||||
|
margin-left: -56px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
top: 100%;
|
top: 100%;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
|
|
||||||
border-color: $lbry-gray-5 transparent transparent transparent;
|
|
||||||
margin-left: -5px;
|
margin-left: -5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue