mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-20 06:32:11 +00:00
Merge pull request #781 from Stremio/refactor/components
Move components to their own folder
This commit is contained in:
commit
89b6526555
206 changed files with 310 additions and 310 deletions
|
|
@ -4,7 +4,7 @@ const React = require('react');
|
|||
const { useTranslation } = require('react-i18next');
|
||||
const PropTypes = require('prop-types');
|
||||
const classnames = require('classnames');
|
||||
const { Button, Image } = require('stremio/common');
|
||||
const { Image, Button } = require('stremio/components');
|
||||
const styles = require('./styles');
|
||||
|
||||
const ErrorDialog = ({ className }) => {
|
||||
|
|
|
|||
|
|
@ -1,65 +0,0 @@
|
|||
// Copyright (C) 2017-2023 Smart code 203358507
|
||||
|
||||
const React = require('react');
|
||||
const PropTypes = require('prop-types');
|
||||
const classnames = require('classnames');
|
||||
const styles = require('./styles');
|
||||
const { useLongPress } = require('use-long-press');
|
||||
|
||||
const Button = React.forwardRef(({ className, href, disabled, children, onLongPress, onDoubleClick, ...props }, ref) => {
|
||||
const longPress = useLongPress(onLongPress, { detect: 'pointer' });
|
||||
const onKeyDown = React.useCallback((event) => {
|
||||
if (typeof props.onKeyDown === 'function') {
|
||||
props.onKeyDown(event);
|
||||
}
|
||||
|
||||
if (event.key === 'Enter') {
|
||||
event.preventDefault();
|
||||
if (!event.nativeEvent.buttonClickPrevented) {
|
||||
event.currentTarget.click();
|
||||
}
|
||||
}
|
||||
}, [props.onKeyDown]);
|
||||
const onMouseDown = React.useCallback((event) => {
|
||||
if (typeof props.onMouseDown === 'function') {
|
||||
props.onMouseDown(event);
|
||||
}
|
||||
|
||||
if (!event.nativeEvent.buttonBlurPrevented) {
|
||||
event.preventDefault();
|
||||
if (document.activeElement instanceof HTMLElement) {
|
||||
document.activeElement.blur();
|
||||
}
|
||||
}
|
||||
}, [props.onMouseDown]);
|
||||
return React.createElement(
|
||||
typeof href === 'string' && href.length > 0 ? 'a' : 'div',
|
||||
{
|
||||
tabIndex: 0,
|
||||
...props,
|
||||
ref,
|
||||
className: classnames(className, styles['button-container'], { 'disabled': disabled }),
|
||||
href,
|
||||
onKeyDown,
|
||||
onMouseDown,
|
||||
onDoubleClick,
|
||||
...longPress()
|
||||
},
|
||||
children
|
||||
);
|
||||
});
|
||||
|
||||
Button.displayName = 'Button';
|
||||
|
||||
Button.propTypes = {
|
||||
className: PropTypes.string,
|
||||
href: PropTypes.string,
|
||||
disabled: PropTypes.bool,
|
||||
children: PropTypes.node,
|
||||
onKeyDown: PropTypes.func,
|
||||
onMouseDown: PropTypes.func,
|
||||
onLongPress: PropTypes.func,
|
||||
onDoubleClick: PropTypes.func
|
||||
};
|
||||
|
||||
module.exports = Button;
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
// Copyright (C) 2017-2023 Smart code 203358507
|
||||
|
||||
const Button = require('./Button');
|
||||
|
||||
module.exports = Button;
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
// Copyright (C) 2017-2023 Smart code 203358507
|
||||
|
||||
const Image = require('./Image');
|
||||
|
||||
module.exports = Image;
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
// Copyright (C) 2017-2023 Smart code 203358507
|
||||
|
||||
const MainNavBars = require('./MainNavBars');
|
||||
|
||||
module.exports = MainNavBars;
|
||||
|
|
@ -4,7 +4,7 @@ const React = require('react');
|
|||
const PropTypes = require('prop-types');
|
||||
const classnames = require('classnames');
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
const Button = require('stremio/common/Button');
|
||||
const { Button } = require('stremio/components');
|
||||
const styles = require('./styles');
|
||||
|
||||
const ToastItem = ({ title, message, dataset, onSelect, onClose, ...props }) => {
|
||||
|
|
|
|||
|
|
@ -1,36 +1,8 @@
|
|||
// Copyright (C) 2017-2023 Smart code 203358507
|
||||
|
||||
const AddonDetailsModal = require('./AddonDetailsModal');
|
||||
const { default: BottomSheet } = require('./BottomSheet');
|
||||
const Button = require('./Button');
|
||||
const Toggle = require('./Toggle');
|
||||
const { default: Chips } = require('./Chips');
|
||||
const ColorInput = require('./ColorInput');
|
||||
const ContinueWatchingItem = require('./ContinueWatchingItem');
|
||||
const DelayedRenderer = require('./DelayedRenderer');
|
||||
const Image = require('./Image');
|
||||
const LibItem = require('./LibItem');
|
||||
const MainNavBars = require('./MainNavBars');
|
||||
const MetaItem = require('./MetaItem');
|
||||
const MetaPreview = require('./MetaPreview');
|
||||
const MetaRow = require('./MetaRow');
|
||||
const ModalDialog = require('./ModalDialog');
|
||||
const Multiselect = require('./Multiselect');
|
||||
const { default: MultiselectMenu } = require('./MultiselectMenu');
|
||||
const { HorizontalNavBar, VerticalNavBar } = require('./NavBar');
|
||||
const { default: HorizontalScroll } = require('./HorizontalScroll');
|
||||
const { PlatformProvider, usePlatform } = require('./Platform');
|
||||
const PlayIconCircleCentered = require('./PlayIconCircleCentered');
|
||||
const Popup = require('./Popup');
|
||||
const SearchBar = require('./SearchBar');
|
||||
const StreamingServerWarning = require('./StreamingServerWarning');
|
||||
const SharePrompt = require('./SharePrompt');
|
||||
const Slider = require('./Slider');
|
||||
const { default: TextInput } = require('./TextInput');
|
||||
const { ToastProvider, useToast } = require('./Toast');
|
||||
const { TooltipProvider, Tooltip } = require('./Tooltips');
|
||||
const { default: Transition } = require('./Transition');
|
||||
const Video = require('./Video');
|
||||
const comparatorWithPriorities = require('./comparatorWithPriorities');
|
||||
const CONSTANTS = require('./CONSTANTS');
|
||||
const { withCoreSuspender, useCoreSuspender } = require('./CoreSuspender');
|
||||
|
|
@ -50,44 +22,14 @@ const useProfile = require('./useProfile');
|
|||
const useStreamingServer = require('./useStreamingServer');
|
||||
const useTorrent = require('./useTorrent');
|
||||
const useTranslate = require('./useTranslate');
|
||||
const EventModal = require('./EventModal');
|
||||
|
||||
module.exports = {
|
||||
AddonDetailsModal,
|
||||
BottomSheet,
|
||||
Button,
|
||||
Toggle,
|
||||
Chips,
|
||||
ColorInput,
|
||||
ContinueWatchingItem,
|
||||
DelayedRenderer,
|
||||
Image,
|
||||
LibItem,
|
||||
MainNavBars,
|
||||
MetaItem,
|
||||
MetaPreview,
|
||||
MetaRow,
|
||||
ModalDialog,
|
||||
Multiselect,
|
||||
MultiselectMenu,
|
||||
HorizontalNavBar,
|
||||
HorizontalScroll,
|
||||
VerticalNavBar,
|
||||
PlatformProvider,
|
||||
usePlatform,
|
||||
PlayIconCircleCentered,
|
||||
Popup,
|
||||
SearchBar,
|
||||
StreamingServerWarning,
|
||||
SharePrompt,
|
||||
Slider,
|
||||
TextInput,
|
||||
ToastProvider,
|
||||
useToast,
|
||||
TooltipProvider,
|
||||
Tooltip,
|
||||
Transition,
|
||||
Video,
|
||||
comparatorWithPriorities,
|
||||
CONSTANTS,
|
||||
withCoreSuspender,
|
||||
|
|
@ -108,5 +50,4 @@ module.exports = {
|
|||
useStreamingServer,
|
||||
useTorrent,
|
||||
useTranslate,
|
||||
EventModal,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ const React = require('react');
|
|||
const PropTypes = require('prop-types');
|
||||
const classnames = require('classnames');
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
const Image = require('stremio/common/Image');
|
||||
const { default: Image } = require('stremio/components/Image');
|
||||
const styles = require('./styles');
|
||||
|
||||
const AddonDetails = ({ className, id, name, version, logo, description, types, transportUrl, official }) => {
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
const React = require('react');
|
||||
const PropTypes = require('prop-types');
|
||||
const ModalDialog = require('stremio/common/ModalDialog');
|
||||
const ModalDialog = require('stremio/components/ModalDialog');
|
||||
const { withCoreSuspender } = require('stremio/common/CoreSuspender');
|
||||
const { usePlatform } = require('stremio/common/Platform');
|
||||
const { useServices } = require('stremio/services');
|
||||
|
|
@ -2,10 +2,6 @@
|
|||
|
||||
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
|
||||
|
||||
:import('~stremio/common/ModalDialog/styles.less') {
|
||||
label: label;
|
||||
}
|
||||
|
||||
.addon-details-modal-container {
|
||||
.addon-details-container, .addon-details-message-container {
|
||||
width: 40rem;
|
||||
|
|
@ -11,7 +11,7 @@ const CLOSE_THRESHOLD = 100;
|
|||
type Props = {
|
||||
children: JSX.Element,
|
||||
title: string,
|
||||
show?: boolean,
|
||||
show: boolean,
|
||||
onClose: () => void,
|
||||
};
|
||||
|
||||
71
src/components/Button/Button.tsx
Normal file
71
src/components/Button/Button.tsx
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
// Copyright (C) 2017-2023 Smart code 203358507
|
||||
|
||||
import { createElement, forwardRef, useCallback } from 'react';
|
||||
import classNames from 'classnames';
|
||||
import { LongPressEventType, useLongPress } from 'use-long-press';
|
||||
import styles from './Button.less';
|
||||
|
||||
type Props = {
|
||||
className?: string,
|
||||
href?: string,
|
||||
title?: string,
|
||||
disabled?: boolean,
|
||||
tabIndex?: number,
|
||||
children: React.ReactNode,
|
||||
onKeyDown?: (event: React.KeyboardEvent) => void,
|
||||
onMouseDown?: (event: React.MouseEvent) => void,
|
||||
onLongPress?: () => void,
|
||||
onClick?: (event: React.MouseEvent<HTMLDivElement>) => void,
|
||||
onDoubleClick?: () => void,
|
||||
};
|
||||
|
||||
const Button = forwardRef(({ className, href, disabled, children, onLongPress, onDoubleClick, ...props }: Props, ref) => {
|
||||
const longPress = useLongPress(onLongPress!, { detect: LongPressEventType.Pointer });
|
||||
|
||||
const onKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {
|
||||
if (typeof props.onKeyDown === 'function') {
|
||||
props.onKeyDown(event);
|
||||
}
|
||||
|
||||
if (event.key === 'Enter') {
|
||||
event.preventDefault();
|
||||
// @ts-expect-error: Property 'buttonClickPrevented' does not exist on type 'KeyboardEvent'.
|
||||
if (!event.nativeEvent.buttonClickPrevented) {
|
||||
event.currentTarget.click();
|
||||
}
|
||||
}
|
||||
}, [props.onKeyDown]);
|
||||
|
||||
const onMouseDown = useCallback((event: React.MouseEvent<HTMLDivElement>) => {
|
||||
if (typeof props.onMouseDown === 'function') {
|
||||
props.onMouseDown(event);
|
||||
}
|
||||
|
||||
// @ts-expect-error: Property 'buttonBlurPrevented' does not exist on type 'MouseEvent'.
|
||||
if (!event.nativeEvent.buttonBlurPrevented) {
|
||||
event.preventDefault();
|
||||
if (document.activeElement instanceof HTMLElement) {
|
||||
document.activeElement.blur();
|
||||
}
|
||||
}
|
||||
}, [props.onMouseDown]);
|
||||
|
||||
return createElement(
|
||||
typeof href === 'string' && href.length > 0 ? 'a' : 'div',
|
||||
{
|
||||
tabIndex: 0,
|
||||
...props,
|
||||
ref,
|
||||
className: classNames(className, styles['button-container'], { 'disabled': disabled }),
|
||||
href,
|
||||
onKeyDown,
|
||||
onMouseDown,
|
||||
onDoubleClick,
|
||||
...longPress()
|
||||
},
|
||||
children
|
||||
);
|
||||
});
|
||||
|
||||
export default Button;
|
||||
|
||||
6
src/components/Button/index.ts
Normal file
6
src/components/Button/index.ts
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
// Copyright (C) 2017-2023 Smart code 203358507
|
||||
|
||||
import Button from './Button';
|
||||
|
||||
export default Button;
|
||||
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
import React, { MouseEvent, memo, useCallback, useEffect, useRef } from 'react';
|
||||
import classNames from 'classnames';
|
||||
import Button from 'stremio/common/Button';
|
||||
import { Button } from 'stremio/components';
|
||||
import styles from './Chip.less';
|
||||
|
||||
type Props = {
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright (C) 2017-2024 Smart code 203358507
|
||||
|
||||
import React, { memo } from 'react';
|
||||
import HorizontalScroll from '../HorizontalScroll';
|
||||
import { HorizontalScroll } from 'stremio/components';
|
||||
import Chip from './Chip';
|
||||
import styles from './Chips.less';
|
||||
|
||||
|
|
@ -5,8 +5,7 @@ const PropTypes = require('prop-types');
|
|||
const classnames = require('classnames');
|
||||
const AColorPicker = require('a-color-picker');
|
||||
const { useTranslation } = require('react-i18next');
|
||||
const Button = require('stremio/common/Button');
|
||||
const ModalDialog = require('stremio/common/ModalDialog');
|
||||
const { Button, ModalDialog } = require('stremio/components');
|
||||
const useBinaryState = require('stremio/common/useBinaryState');
|
||||
const ColorPicker = require('./ColorPicker');
|
||||
const styles = require('./styles');
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
const React = require('react');
|
||||
const PropTypes = require('prop-types');
|
||||
const { useServices } = require('stremio/services');
|
||||
const LibItem = require('stremio/common/LibItem');
|
||||
const LibItem = require('stremio/components/LibItem');
|
||||
|
||||
const ContinueWatchingItem = ({ _id, notifications, deepLinks, ...props }) => {
|
||||
const { core } = useServices();
|
||||
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
const React = require('react');
|
||||
const { useTranslation } = require('react-i18next');
|
||||
const Button = require('stremio/common/Button');
|
||||
const ModalDialog = require('stremio/common/ModalDialog');
|
||||
const { Button, ModalDialog } = require('stremio/components');
|
||||
const useEvents = require('./useEvents');
|
||||
const styles = require('./styles');
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
@import (reference) '~stremio/common/screen-sizes.less';
|
||||
|
||||
:import('~stremio/common/ModalDialog/styles.less') {
|
||||
:import('~stremio/components/ModalDialog/styles.less') {
|
||||
modal-dialog-content: modal-dialog-content;
|
||||
modal-dialog-container: modal-dialog-container;
|
||||
}
|
||||
|
|
@ -1,20 +1,30 @@
|
|||
// Copyright (C) 2017-2023 Smart code 203358507
|
||||
|
||||
const React = require('react');
|
||||
const PropTypes = require('prop-types');
|
||||
import React, { useCallback, useLayoutEffect, useState } from 'react';
|
||||
|
||||
const Image = ({ className, src, alt, fallbackSrc, renderFallback, ...props }) => {
|
||||
const [broken, setBroken] = React.useState(false);
|
||||
const onError = React.useCallback((event) => {
|
||||
type Props = {
|
||||
className: string,
|
||||
src: string,
|
||||
alt: string,
|
||||
fallbackSrc: string,
|
||||
renderFallback: () => void,
|
||||
onError: (event: React.SyntheticEvent<HTMLImageElement>) => void,
|
||||
};
|
||||
|
||||
const Image = ({ className, src, alt, fallbackSrc, renderFallback, ...props }: Props) => {
|
||||
const [broken, setBroken] = useState(false);
|
||||
const onError = useCallback((event: React.SyntheticEvent<HTMLImageElement>) => {
|
||||
if (typeof props.onError === 'function') {
|
||||
props.onError(event);
|
||||
}
|
||||
|
||||
setBroken(true);
|
||||
}, [props.onError]);
|
||||
React.useLayoutEffect(() => {
|
||||
|
||||
useLayoutEffect(() => {
|
||||
setBroken(false);
|
||||
}, [src]);
|
||||
|
||||
return (broken || typeof src !== 'string' || src.length === 0) && (typeof renderFallback === 'function' || typeof fallbackSrc === 'string') ?
|
||||
typeof renderFallback === 'function' ?
|
||||
renderFallback()
|
||||
|
|
@ -24,13 +34,4 @@ const Image = ({ className, src, alt, fallbackSrc, renderFallback, ...props }) =
|
|||
<img {...props} className={className} src={src} alt={alt} loading='lazy' onError={onError} />;
|
||||
};
|
||||
|
||||
Image.propTypes = {
|
||||
className: PropTypes.string,
|
||||
src: PropTypes.string,
|
||||
alt: PropTypes.string,
|
||||
fallbackSrc: PropTypes.string,
|
||||
renderFallback: PropTypes.func,
|
||||
onError: PropTypes.func
|
||||
};
|
||||
|
||||
module.exports = Image;
|
||||
export default Image;
|
||||
5
src/components/Image/index.ts
Normal file
5
src/components/Image/index.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
// Copyright (C) 2017-2023 Smart code 203358507
|
||||
|
||||
import Image from './Image';
|
||||
|
||||
export default Image;
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
const React = require('react');
|
||||
const { useServices } = require('stremio/services');
|
||||
const PropTypes = require('prop-types');
|
||||
const MetaItem = require('stremio/common/MetaItem');
|
||||
const MetaItem = require('stremio/components/MetaItem');
|
||||
const { t } = require('i18next');
|
||||
|
||||
const LibItem = ({ _id, removable, notifications, watched, ...props }) => {
|
||||
|
|
@ -1,10 +1,9 @@
|
|||
// Copyright (C) 2017-2023 Smart code 203358507
|
||||
|
||||
const React = require('react');
|
||||
const PropTypes = require('prop-types');
|
||||
const classnames = require('classnames');
|
||||
const { VerticalNavBar, HorizontalNavBar } = require('stremio/common/NavBar');
|
||||
const styles = require('./styles');
|
||||
import React, { memo } from 'react';
|
||||
import classnames from 'classnames';
|
||||
import { VerticalNavBar, HorizontalNavBar } from 'stremio/components/NavBar';
|
||||
import styles from './MainNavBars.less';
|
||||
|
||||
const TABS = [
|
||||
{ id: 'board', label: 'Board', icon: 'home', href: '#/' },
|
||||
|
|
@ -15,7 +14,14 @@ const TABS = [
|
|||
{ id: 'settings', label: 'SETTINGS', icon: 'settings', href: '#/settings' },
|
||||
];
|
||||
|
||||
const MainNavBars = React.memo(({ className, route, query, children }) => {
|
||||
type Props = {
|
||||
className: string,
|
||||
route?: string,
|
||||
query?: string,
|
||||
children?: React.ReactNode,
|
||||
};
|
||||
|
||||
const MainNavBars = memo(({ className, route, query, children }: Props) => {
|
||||
return (
|
||||
<div className={classnames(className, styles['main-nav-bars-container'])}>
|
||||
<HorizontalNavBar
|
||||
|
|
@ -37,13 +43,5 @@ const MainNavBars = React.memo(({ className, route, query, children }) => {
|
|||
);
|
||||
});
|
||||
|
||||
MainNavBars.displayName = 'MainNavBars';
|
||||
export default MainNavBars;
|
||||
|
||||
MainNavBars.propTypes = {
|
||||
className: PropTypes.string,
|
||||
route: PropTypes.string,
|
||||
query: PropTypes.string,
|
||||
children: PropTypes.node
|
||||
};
|
||||
|
||||
module.exports = MainNavBars;
|
||||
6
src/components/MainNavBars/index.ts
Normal file
6
src/components/MainNavBars/index.ts
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
// Copyright (C) 2017-2023 Smart code 203358507
|
||||
|
||||
import MainNavBars from './MainNavBars';
|
||||
|
||||
export default MainNavBars;
|
||||
|
||||
|
|
@ -6,9 +6,9 @@ const classnames = require('classnames');
|
|||
const { useTranslation } = require('react-i18next');
|
||||
const filterInvalidDOMProps = require('filter-invalid-dom-props').default;
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
const Button = require('stremio/common/Button');
|
||||
const Image = require('stremio/common/Image');
|
||||
const Multiselect = require('stremio/common/Multiselect');
|
||||
const { default: Button } = require('stremio/components/Button');
|
||||
const { default: Image } = require('stremio/components/Image');
|
||||
const Multiselect = require('stremio/components/Multiselect');
|
||||
const useBinaryState = require('stremio/common/useBinaryState');
|
||||
const { ICON_FOR_TYPE } = require('stremio/common/CONSTANTS');
|
||||
const styles = require('./styles');
|
||||
|
|
@ -3,21 +3,16 @@
|
|||
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
|
||||
@import (reference) '~stremio/common/screen-sizes.less';
|
||||
|
||||
:import('~stremio/common/Popup/styles.less') {
|
||||
:import('~stremio/components/Popup/styles.less') {
|
||||
popup-menu-container: menu-container;
|
||||
}
|
||||
|
||||
:import('~stremio/common/Multiselect/styles.less') {
|
||||
:import('~stremio/components/Multiselect/styles.less') {
|
||||
multiselect-menu-container: menu-container;
|
||||
multiselect-option-container: option-container;
|
||||
multiselect-option-label: label;
|
||||
}
|
||||
|
||||
:import('~stremio/common/PlayIconCircleCentered/styles.less') {
|
||||
play-icon-circle-centered-background: background;
|
||||
play-icon-circle-centered-icon: icon;
|
||||
}
|
||||
|
||||
@play-icon-size: 4rem;
|
||||
|
||||
.meta-item-container {
|
||||
|
|
@ -4,7 +4,7 @@ const React = require('react');
|
|||
const PropTypes = require('prop-types');
|
||||
const classnames = require('classnames');
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
const Button = require('stremio/common/Button');
|
||||
const { Button } = require('stremio/components');
|
||||
const styles = require('./styles');
|
||||
const { Tooltip } = require('stremio/common/Tooltips');
|
||||
|
||||
|
|
@ -4,7 +4,7 @@ const React = require('react');
|
|||
const PropTypes = require('prop-types');
|
||||
const classnames = require('classnames');
|
||||
const { useTranslation } = require('react-i18next');
|
||||
const Button = require('stremio/common/Button');
|
||||
const { Button } = require('stremio/components');
|
||||
const styles = require('./styles');
|
||||
|
||||
const MetaLinks = ({ className, label, links }) => {
|
||||
|
|
@ -6,10 +6,10 @@ const classnames = require('classnames');
|
|||
const UrlUtils = require('url');
|
||||
const { useTranslation } = require('react-i18next');
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
const Button = require('stremio/common/Button');
|
||||
const Image = require('stremio/common/Image');
|
||||
const ModalDialog = require('stremio/common/ModalDialog');
|
||||
const SharePrompt = require('stremio/common/SharePrompt');
|
||||
const { default: Button } = require('stremio/components/Button');
|
||||
const { default: Image } = require('stremio/components/Image');
|
||||
const ModalDialog = require('stremio/components/ModalDialog');
|
||||
const SharePrompt = require('stremio/components/SharePrompt');
|
||||
const CONSTANTS = require('stremio/common/CONSTANTS');
|
||||
const routesRegexp = require('stremio/common/routesRegexp');
|
||||
const useBinaryState = require('stremio/common/useBinaryState');
|
||||
|
|
@ -5,7 +5,7 @@ const ReactIs = require('react-is');
|
|||
const PropTypes = require('prop-types');
|
||||
const classnames = require('classnames');
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
const Button = require('stremio/common/Button');
|
||||
const { Button } = require('stremio/components');
|
||||
const CONSTANTS = require('stremio/common/CONSTANTS');
|
||||
const useTranslate = require('stremio/common/useTranslate');
|
||||
const MetaRowPlaceholder = require('./MetaRowPlaceholder');
|
||||
|
|
@ -5,7 +5,7 @@ const PropTypes = require('prop-types');
|
|||
const classnames = require('classnames');
|
||||
const { useTranslation } = require('react-i18next');
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
const Button = require('stremio/common/Button');
|
||||
const { Button } = require('stremio/components');
|
||||
const CONSTANTS = require('stremio/common/CONSTANTS');
|
||||
const styles = require('./styles');
|
||||
|
||||
|
|
@ -4,7 +4,7 @@ const React = require('react');
|
|||
const PropTypes = require('prop-types');
|
||||
const classnames = require('classnames');
|
||||
const { useRouteFocused, useModalsContainer } = require('stremio-router');
|
||||
const Button = require('stremio/common/Button');
|
||||
const { default: Button } = require('stremio/components/Button');
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
const { Modal } = require('stremio-router');
|
||||
const styles = require('./styles');
|
||||
|
|
@ -4,9 +4,9 @@ const React = require('react');
|
|||
const PropTypes = require('prop-types');
|
||||
const classnames = require('classnames');
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
const Button = require('stremio/common/Button');
|
||||
const Popup = require('stremio/common/Popup');
|
||||
const ModalDialog = require('stremio/common/ModalDialog');
|
||||
const { Button } = require('stremio/components');
|
||||
const Popup = require('stremio/components/Popup');
|
||||
const ModalDialog = require('stremio/components/ModalDialog');
|
||||
const useBinaryState = require('stremio/common/useBinaryState');
|
||||
const styles = require('./styles');
|
||||
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
|
||||
@import (reference) '~stremio/common/screen-sizes.less';
|
||||
|
||||
:import('~stremio/common/Popup/styles.less') {
|
||||
:import('~stremio/components/Popup/styles.less') {
|
||||
popup-menu-container: menu-container;
|
||||
}
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright (C) 2017-2024 Smart code 203358507
|
||||
|
||||
import React, { useRef, useEffect, useCallback } from 'react';
|
||||
import Button from 'stremio/common/Button';
|
||||
import { Button } from 'stremio/components';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import classNames from 'classnames';
|
||||
import Option from './Option';
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
import React, { useCallback, useMemo, forwardRef } from 'react';
|
||||
import classNames from 'classnames';
|
||||
import Button from 'stremio/common/Button';
|
||||
import { Button } from 'stremio/components';
|
||||
import styles from './Option.less';
|
||||
import Icon from '@stremio/stremio-icons/react';
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright (C) 2017-2024 Smart code 203358507
|
||||
|
||||
import React from 'react';
|
||||
import Button from 'stremio/common/Button';
|
||||
import { Button } from 'stremio/components';
|
||||
import useBinaryState from 'stremio/common/useBinaryState';
|
||||
import Dropdown from './Dropdown';
|
||||
import classNames from 'classnames';
|
||||
|
|
@ -4,8 +4,7 @@ const React = require('react');
|
|||
const PropTypes = require('prop-types');
|
||||
const classnames = require('classnames');
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
const Button = require('stremio/common/Button');
|
||||
const Image = require('stremio/common/Image');
|
||||
const { Button, Image } = require('stremio/components');
|
||||
const useFullscreen = require('stremio/common/useFullscreen');
|
||||
const usePWA = require('stremio/common/usePWA');
|
||||
const SearchBar = require('./SearchBar');
|
||||
|
|
@ -4,7 +4,7 @@ const React = require('react');
|
|||
const PropTypes = require('prop-types');
|
||||
const classnames = require('classnames');
|
||||
const { useRouteFocused } = require('stremio-router');
|
||||
const Popup = require('stremio/common/Popup');
|
||||
const Popup = require('stremio/components/Popup');
|
||||
const useBinaryState = require('stremio/common/useBinaryState');
|
||||
const NavMenuContent = require('./NavMenuContent');
|
||||
const styles = require('./styles.less');
|
||||
|
|
@ -6,7 +6,7 @@ const classnames = require('classnames');
|
|||
const { useTranslation } = require('react-i18next');
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
const { useServices } = require('stremio/services');
|
||||
const Button = require('stremio/common/Button');
|
||||
const { Button } = require('stremio/components');
|
||||
const useFullscreen = require('stremio/common/useFullscreen');
|
||||
const useProfile = require('stremio/common/useProfile');
|
||||
const usePWA = require('stremio/common/usePWA');
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
|
||||
@import (reference) '~stremio/common/screen-sizes.less';
|
||||
|
||||
:import('~stremio/common/Popup/styles.less') {
|
||||
:import('~stremio/components/Popup/styles.less') {
|
||||
popup-menu-container: menu-container;
|
||||
}
|
||||
|
||||
|
|
@ -7,14 +7,13 @@ const debounce = require('lodash.debounce');
|
|||
const { useTranslation } = require('react-i18next');
|
||||
const { default: Icon } = require('@stremio/stremio-icons/react');
|
||||
const { useRouteFocused } = require('stremio-router');
|
||||
const Button = require('stremio/common/Button');
|
||||
const { Button, TextInput } = require('stremio/components');
|
||||
const useTorrent = require('stremio/common/useTorrent');
|
||||
const { withCoreSuspender } = require('stremio/common/CoreSuspender');
|
||||
const useSearchHistory = require('./useSearchHistory');
|
||||
const useLocalSearch = require('./useLocalSearch');
|
||||
const styles = require('./styles');
|
||||
const useBinaryState = require('stremio/common/useBinaryState');
|
||||
const { default: TextInput } = require('stremio/common/TextInput');
|
||||
|
||||
const SearchBar = React.memo(({ className, query, active }) => {
|
||||
const { t } = useTranslation();
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue