Add hint that results are being filtered by language
This commit is contained in:
parent
3974ca6322
commit
1777397f07
9 changed files with 55 additions and 5 deletions
|
@ -2203,5 +2203,6 @@
|
||||||
"Set minimum channel age": "Set minimum channel age",
|
"Set minimum channel age": "Set minimum channel age",
|
||||||
"The minimum duration must not exceed Feb 8th, 2022.": "The minimum duration must not exceed Feb 8th, 2022.",
|
"The minimum duration must not exceed Feb 8th, 2022.": "The minimum duration must not exceed Feb 8th, 2022.",
|
||||||
"No limit": "No limit",
|
"No limit": "No limit",
|
||||||
|
"Search results are being filtered by language. Click here to change the setting.": "Search results are being filtered by language. Click here to change the setting.",
|
||||||
"--end--": "--end--"
|
"--end--": "--end--"
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import ClaimList from 'component/claimList';
|
||||||
import ClaimPreview from 'component/claimPreview';
|
import ClaimPreview from 'component/claimPreview';
|
||||||
import ClaimPreviewTile from 'component/claimPreviewTile';
|
import ClaimPreviewTile from 'component/claimPreviewTile';
|
||||||
import I18nMessage from 'component/i18nMessage';
|
import I18nMessage from 'component/i18nMessage';
|
||||||
|
import LangFilterIndicator from 'component/langFilterIndicator';
|
||||||
import ClaimListHeader from 'component/claimListHeader';
|
import ClaimListHeader from 'component/claimListHeader';
|
||||||
import useFetchViewCount from 'effects/use-fetch-view-count';
|
import useFetchViewCount from 'effects/use-fetch-view-count';
|
||||||
import { useIsLargeScreen } from 'effects/use-screensize';
|
import { useIsLargeScreen } from 'effects/use-screensize';
|
||||||
|
@ -233,7 +234,7 @@ function ClaimListDiscover(props: Props) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
console.log('Invalid or unhandled CONTENT_KEY:', contentTypeParam);
|
console.log('Invalid or unhandled CONTENT_KEY:', contentTypeParam); // eslint-disable-line no-console
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -641,9 +642,12 @@ function ClaimListDiscover(props: Props) {
|
||||||
{headerLabel && <label className="claim-list__header-label">{headerLabel}</label>}
|
{headerLabel && <label className="claim-list__header-label">{headerLabel}</label>}
|
||||||
{tileLayout ? (
|
{tileLayout ? (
|
||||||
<div>
|
<div>
|
||||||
{!repostedClaimId && (
|
{!repostedClaimId && showHeader && (
|
||||||
<div className="section__header--actions">
|
<div className="section__header--actions">
|
||||||
{headerToUse}
|
<div className="section__actions">
|
||||||
|
{headerToUse}
|
||||||
|
{searchInSelectedLangOnly && <LangFilterIndicator />}
|
||||||
|
</div>
|
||||||
{meta && <div className="section__actions--no-margin">{meta}</div>}
|
{meta && <div className="section__actions--no-margin">{meta}</div>}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
@ -680,7 +684,10 @@ function ClaimListDiscover(props: Props) {
|
||||||
<div>
|
<div>
|
||||||
{showHeader && (
|
{showHeader && (
|
||||||
<div className="section__header--actions">
|
<div className="section__header--actions">
|
||||||
{headerToUse}
|
<div className="section__actions">
|
||||||
|
{headerToUse}
|
||||||
|
{searchInSelectedLangOnly && <LangFilterIndicator />}
|
||||||
|
</div>
|
||||||
{meta && <div className="section__actions--no-margin">{meta}</div>}
|
{meta && <div className="section__actions--no-margin">{meta}</div>}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
|
@ -2766,5 +2766,18 @@ export const icons = {
|
||||||
</svg>
|
</svg>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
[ICONS.SUBMIT]: buildIcon(<path d="M2.01 21 23 12 2.01 3 2 10l15 2-15 2z" />),
|
[ICONS.FILTERED_BY_LANG]: buildIcon(
|
||||||
|
<svg viewBox="0 0 140 140" xmlns="http://www.w3.org/2000/svg" strokeWidth="1.5">
|
||||||
|
<g transform="matrix(5.833333333333333,0,0,5.833333333333333,0,0)">
|
||||||
|
<path d="M15.750 16.500 A1.500 1.500 0 1 0 18.750 16.500 A1.500 1.500 0 1 0 15.750 16.500 Z" />
|
||||||
|
<path d="M18.524,10.7l.443,1.452a.992.992,0,0,0,1.173.681l1.472-.341a1.339,1.339,0,0,1,1.275,2.218l-1.031,1.111a1,1,0,0,0,0,1.362l1.031,1.111a1.339,1.339,0,0,1-1.275,2.219l-1.472-.342a.993.993,0,0,0-1.173.681L18.524,22.3a1.33,1.33,0,0,1-2.548,0l-.442-1.453a.994.994,0,0,0-1.174-.681l-1.472.342a1.339,1.339,0,0,1-1.274-2.219l1.03-1.111a1,1,0,0,0,0-1.362l-1.03-1.111a1.338,1.338,0,0,1,1.274-2.218l1.472.341a.993.993,0,0,0,1.174-.681l.442-1.452A1.33,1.33,0,0,1,18.524,10.7Z" />
|
||||||
|
<path d="M12,23.25A11.25,11.25,0,1,1,23.028,9.767" />
|
||||||
|
<path d="M9.289,22.921C7.768,20.689,6.75,16.633,6.75,12S7.768,3.312,9.289,1.079" />
|
||||||
|
<path d="M0.775 11.25L9 11.25" />
|
||||||
|
<path d="M2.999 5.25L21 5.25" />
|
||||||
|
<path d="M2.048 17.25L9 17.25" />
|
||||||
|
<path d="M14.711,1.079a15.282,15.282,0,0,1,2.068,5.632" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
),
|
||||||
};
|
};
|
||||||
|
|
2
ui/component/langFilterIndicator/index.js
Normal file
2
ui/component/langFilterIndicator/index.js
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import LangFilterIndicator from './view';
|
||||||
|
export default LangFilterIndicator;
|
18
ui/component/langFilterIndicator/view.jsx
Normal file
18
ui/component/langFilterIndicator/view.jsx
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
// @flow
|
||||||
|
import React from 'react';
|
||||||
|
import Button from 'component/button';
|
||||||
|
import * as ICONS from 'constants/icons';
|
||||||
|
import * as PAGES from 'constants/pages';
|
||||||
|
import { SEARCH_IN_LANGUAGE } from 'constants/hashes';
|
||||||
|
|
||||||
|
export default function LangFilterIndicator() {
|
||||||
|
return (
|
||||||
|
<Button
|
||||||
|
className="icon--langFilter"
|
||||||
|
icon={ICONS.FILTERED_BY_LANG}
|
||||||
|
iconSize={20}
|
||||||
|
description={__('Search results are being filtered by language. Click here to change the setting.')}
|
||||||
|
navigate={`/$/${PAGES.SETTINGS}#${SEARCH_IN_LANGUAGE}`}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
1
ui/constants/hashes.js
Normal file
1
ui/constants/hashes.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export const SEARCH_IN_LANGUAGE = 'searchInLanguage';
|
|
@ -197,3 +197,4 @@ export const ODYSEE_DARK_TEXT = 'OdyseeLogoDarkText';
|
||||||
export const FEATURED = 'Featured';
|
export const FEATURED = 'Featured';
|
||||||
export const DISMISS_ALL = 'DismissAll';
|
export const DISMISS_ALL = 'DismissAll';
|
||||||
export const SUBMIT = 'Submit';
|
export const SUBMIT = 'Submit';
|
||||||
|
export const FILTERED_BY_LANG = 'FilteredByLang';
|
||||||
|
|
|
@ -259,6 +259,7 @@ function DiscoverPage(props: Props) {
|
||||||
prefixUris={useDualList ? undefined : livestreamUris}
|
prefixUris={useDualList ? undefined : livestreamUris}
|
||||||
pins={useDualList ? undefined : getPins(dynamicRouteProps)}
|
pins={useDualList ? undefined : getPins(dynamicRouteProps)}
|
||||||
hideFilters={SIMPLE_SITE ? !(dynamicRouteProps || tags) : undefined}
|
hideFilters={SIMPLE_SITE ? !(dynamicRouteProps || tags) : undefined}
|
||||||
|
showHeader={!useDualList}
|
||||||
header={useDualList ? <span /> : repostedUri ? <span /> : undefined}
|
header={useDualList ? <span /> : repostedUri ? <span /> : undefined}
|
||||||
tileLayout={repostedUri ? false : tileLayout}
|
tileLayout={repostedUri ? false : tileLayout}
|
||||||
defaultOrderBy={SIMPLE_SITE ? (dynamicRouteProps ? undefined : CS.ORDER_BY_TRENDING) : undefined}
|
defaultOrderBy={SIMPLE_SITE ? (dynamicRouteProps ? undefined : CS.ORDER_BY_TRENDING) : undefined}
|
||||||
|
|
|
@ -85,3 +85,9 @@
|
||||||
.icon--margin-right {
|
.icon--margin-right {
|
||||||
margin-right: var(--spacing-xs);
|
margin-right: var(--spacing-xs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon--langFilter {
|
||||||
|
color: var(--color-live);
|
||||||
|
margin-left: var(--spacing-xs);
|
||||||
|
opacity: 0.9;
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue