lbry-desktop/ui/constants/icons.js
Rafael Saes 83dbe8ec7c
Playlists v2: Refactors, touch ups + Queue Mode (#1604)
* Playlists v2

* Style pass

* Change playlist items arrange icon

* Playlist card body open by default

* Refactor collectionEdit components

* Paginate & Refactor bid field

* Collection page changes

* Add Thumbnail optional

* Replace extra info for description on collection page

* Playlist card right below video on medium screen

* Allow editing private collections

* Add edit option to menus

* Allow deleting a public playlist but keeping a private version

* Add queue to Save menu, remove edit option from Builtin pages, show queue on playlists page

* Fix scroll to recent persisting on medium screen

* Fix adding to queue from menu

* Fixes for delete

* PublishList: delay mounting Items tab to prevent lock-up (#1783)

For a large list, the playlist publish form is unusable (super-slow typing) due to the entire list being mounted despite the tab is not active.
The full solution is still to paginate it, but for now, don't mount the tab until it is selected. Add a spinner to indicate something is loading. It's not prefect, but it's throwaway code anyway. At least we can fill in the fields properly now.

* Batch-resolve private collections (#1782)

* makeSelectClaimForClaimId --> selectClaimForClaimId

Move away from the problematic `makeSelect*`, especially in large loops.

* Batch-resolve private collections
1758

This alleviates the lock-up that is caused by large number of invidual resolves. There will still be some minor stutter due to the large DOM that React needs to handle -- that is logged in 1758 and will be handled separately.

At least the stutter is short (1-2s) and the app is still usable.
Private list items are being resolve individually, super slow if the list is large (>100). Published lists doesn't have this issue.
doFetchItemsInCollections contains most of the useful logic, but it isn't called for private/built-in lists because it's not an actual claim.
Tweaked doFetchItemsInCollections to handle private (UUID-based) collections.

* Use persisted state for floating player playlist card body
- I find it annoying being open everytime

* Fix removing edits from published playlist

* Fix scroll on mobile

* Allow going editing items from toast

* Fix ClaimShareButton

* Prevent edit/publish of builtin

* Fix async inside forEach

* Fix sync on queue edit

* Fix autoplayCountdown replay

* Fix deleting an item scrolling the playlist

* CreatedAt fixes

* Remove repost for now

* Anon publish fixes

* Fix mature case on floating

Co-authored-by: infinite-persistence <64950861+infinite-persistence@users.noreply.github.com>
2022-07-13 10:59:59 -03:00

215 lines
7.6 KiB
JavaScript

// React Feather icons
// https://github.com/carmelopullara/react-feather
// Note: Icons should be named for their purpose, rather than the actual icon.
// The goal being to reduce multiple uses of the same icon for different purposes.
export const REWARDS = 'Award';
export const LOCAL = 'Folder';
export const ALERT = 'AlertCircle';
export const INFO = 'InfoCircle';
export const COPY = 'Clipboard';
export const ARROW_LEFT = 'ChevronLeft';
export const ARROW_RIGHT = 'ChevronRight';
export const DOWNLOAD = 'Download';
export const PUBLISH = 'UploadCloud';
export const FETCH = 'Fetch';
export const REMOVE = 'X';
export const ADD = 'Plus';
export const SUBTRACT = 'Subtract';
export const EDIT = 'Edit';
export const DELETE = 'Trash';
export const REPORT = 'Flag';
export const HELP = 'HelpCircle';
export const CHAT = 'MessageCircle';
export const FEEDBACK = 'MessageSquare';
export const SEARCH = 'Search';
export const CHANNEL = 'AtSign';
export const REFRESH = 'RefreshCw';
export const WATCH_HISTORY = 'WatchHistory';
export const HOME = 'Home';
export const OVERVIEW = 'Activity';
export const WALLET = 'List';
export const COIN_SWAP = 'CoinSwap';
export const PHONE = 'Phone';
export const COMPLETE = 'Check';
export const COMPLETED = 'CheckCircle';
export const NOT_COMPLETED = 'Circle';
export const SUBSCRIBE = 'Heart';
export const SUBSCRIBED = 'HeartSolid';
export const UNSUBSCRIBE = 'BrokenHeart';
export const BELL = 'Bell';
export const BELL_ON = 'BellOn';
export const UNLOCK = 'Unlock';
export const LOCK = 'Lock';
export const WEB = 'Globe';
export const SHARE = 'Share2';
export const EXTERNAL = 'ExternalLink';
export const PLAY = 'Play';
export const PLAY_PREVIOUS = 'Play Previous';
export const WHATSAPP = 'WhatsApp';
export const FACEBOOK = 'Facebook';
export const TWITTER = 'Twitter';
export const TELEGRAM = 'Telegram';
export const REDDIT = 'Reddit';
export const EMBED = 'Embed';
export const MORE = 'More';
export const SHARE_LINK = 'ShareLink';
export const COPY_LINK = 'CopyLink';
export const ACCOUNT = 'User';
export const SETTINGS = 'Settings';
export const FILTER = 'Filter';
export const INVITE = 'Users';
export const FILE = 'File';
export const FULLSCREEN = 'Maximize';
export const OPTIONS = 'Sliders';
export const YES = 'ThumbsUp';
export const NO = 'ThumbsDown';
export const UP = 'ChevronUp';
export const UP_TOP = 'ChevronUpTop';
export const DOWN = 'ChevronDown';
export const DOWN_BOTTOM = 'ChevronDownBottom';
export const DRAG = 'DragAndDrop';
export const SECURE = 'Lock';
export const MENU = 'Menu';
export const BACKUP = 'Database';
export const TRANSACTIONS = 'FileText';
export const LBRY = 'Lbry';
export const LBC = 'LBC';
export const DISCOVER = 'Compass';
export const VISUALIZER_ON = 'Eye';
export const VISUALIZER_OFF = 'EyeOff';
export const MUSIC_DETAILS_ON = 'AlignLeft';
export const MUSIC_DETAILS_OFF = 'AlignLeft';
export const MUSIC_ART_ON = 'Image';
export const MUSIC_ART_OFF = 'Image';
export const MUSIC_ALBUM = 'Disc';
export const MUSIC_ARTIST = 'Mic';
export const MUSIC_SONG = 'Music';
export const MUSIC_EQUALIZER = 'Sliders';
export const LIGHT = 'Sun';
export const DARK = 'Moon';
export const LIBRARY = 'Folder';
export const TAG = 'Tag';
export const SUPPORT = 'TrendingUp';
export const BLOCK = 'Slash';
export const MUTE = 'VolumeX';
export const UNBLOCK = 'Circle';
export const VIEW = 'View';
export const EYE = 'Eye';
export const EYE_OFF = 'EyeOff';
export const SIGN_OUT = 'SignOut';
export const SIGN_IN = 'SignIn';
export const SIGN_UP = 'Key';
export const TRENDING = 'Trending';
export const TOP = 'Top';
export const NEW = 'New';
export const MORE_VERTICAL = 'MoreVertical';
export const IMAGE = 'Image';
export const AUDIO = 'HeadPhones';
export const VIDEO = 'Video';
export const VOLUME_MUTED = 'VolumeX';
export const TEXT = 'FileText';
export const DOWNLOADABLE = 'Downloadable';
export const POST = 'Post';
export const REPOST = 'Repeat';
export const VALIDATED = 'Check';
export const SLIDERS = 'Sliders';
export const SCIENCE = 'Science';
export const ANALYTICS = 'BarChart2';
export const PURCHASED = 'Key';
export const CIRCLE = 'Circle';
export const PINNED = 'Pinned';
export const BUY = 'Buy';
export const SEND = 'Send';
export const RECEIVE = 'Receive';
export const CAMERA = 'Camera';
export const OPEN_LOG = 'FilePlus';
export const OPEN_LOG_FOLDER = 'Folder';
export const LBRY_STATUS = 'BarChart';
export const NOTIFICATION = 'Bell';
export const LAYOUT = 'Layout';
export const REPLY = 'Reply';
export const YOUTUBE = 'Youtube';
export const UPVOTE = 'Upvote';
export const DOWNVOTE = 'Downvote';
export const CONTROVERSIAL = 'Controversial';
export const RABBIT_HOLE = 'Droplet';
export const TECH = 'Speaker';
export const NEWS = 'Aperature';
export const FINANCE = 'DollarSign';
export const ENLIGHTENMENT = 'Anchor';
export const GAMING = 'Gaming';
export const COMMUNITY = 'Community';
export const FIRE_ACTIVE = 'FireActive';
export const SLIME_ACTIVE = 'SlimeActive';
export const FIRE = 'Fire';
export const SLIME = 'Slime';
export const PIN = 'Pin';
export const BEST = 'Best';
export const CREATOR_LIKE = 'CreatorLike';
export const CHEF = 'Chef';
export const ANONYMOUS = 'Anonymous';
export const CHANNEL_LEVEL_1 = 'ChannelLevel1';
export const CHANNEL_LEVEL_1_B = 'ChannelLevel1B';
export const CHANNEL_LEVEL_2 = 'ChannelLevel2';
export const CHANNEL_LEVEL_2_B = 'ChannelLevel2B';
export const CHANNEL_LEVEL_3 = 'ChannelLevel3';
export const CHANNEL_LEVEL_3_B = 'ChannelLevel3B';
export const CHANNEL_LEVEL_4 = 'ChannelLevel4';
export const CHANNEL_LEVEL_4_B = 'ChannelLevel4B';
export const CHANNEL_LEVEL_5 = 'ChannelLevel5';
export const CHANNEL_LEVEL_5_B = 'ChannelLevel5B';
export const MOVIES = 'Movies';
export const WILD_WEST = 'WildWest';
export const UNIVERSE = 'Universe';
export const CHEESE = 'Cheese';
export const PEACE = 'Peace';
export const PORK_BUN = 'PorkBun';
export const MIND_BLOWN = 'MindBlown';
export const LIVESTREAM = 'Livestream';
export const LIVESTREAM_SOLID = 'LivestreamSolid';
export const LIVESTREAM_MONOCHROME = 'LivestreamMono';
export const STACK = 'stack';
export const TIME = 'time';
export const GLOBE = 'globe';
export const RSS = 'rss';
export const APPEARANCE = 'Appearance';
export const CONTENT = 'Content';
export const STAR = 'star';
export const MUSIC = 'MusicCategory';
export const BADGE_MOD = 'BadgeMod';
export const BADGE_ADMIN = 'BadgeAdmin';
export const BADGE_STREAMER = 'BadgeStreamer';
export const REPLAY = 'Replay';
export const REPEAT = 'Repeat';
export const SHUFFLE = 'Shuffle';
export const HOLD_PHONE = 'HoldPhone';
export const LIFE = 'Life';
export const ARTISTS = 'Artists';
export const MYSTERIES = 'Mysteries';
export const TECHNOLOGY = 'Technology';
export const EMOJI = 'Emoji';
export const STICKER = 'Sticker';
export const EDUCATION = 'Education';
export const POP_CULTURE = 'Pop Culture';
export const ODYSEE_LOGO = 'OdyseeLogo';
export const ODYSEE_WHITE_TEXT = 'OdyseeLogoWhiteText';
export const ODYSEE_DARK_TEXT = 'OdyseeLogoDarkText';
export const FEATURED = 'Featured';
export const EARLY_ACCESS = 'EarlyAccess';
export const MEMBER_BADGE = 'MemberBadge';
export const NO_ADS = 'NoAds';
export const LIVESTREAM_MEMBERSHIP = 'LivestreamMembership';
export const PLAYLIST_PLAYBACK = 'PlaylistPlayback';
export const PREMIUM = 'Premium';
export const PREMIUM_PLUS = 'PremiumPlus';
export const UPGRADE = 'Upgrade';
export const DISMISS_ALL = 'DismissAll';
export const SUBMIT = 'Submit';
export const FILTERED_BY_LANG = 'FilteredByLang';
export const EURO = 'Euro';
export const SPORTS = 'Sports';
export const PLAYLIST = 'Playlist';
export const PLAYLIST_ADD = 'PlaylistAdd';
export const PLAYLIST_FILLED = 'PlaylistFilled';
export const ARRANGE = 'Arrange';