From d46b1b1749a6cb18b06ac73013a754bea8e25596 Mon Sep 17 00:00:00 2001 From: alexsparkes Date: Tue, 18 Jun 2024 17:31:39 +0100 Subject: [PATCH] style(marketplace): Transition between items view options Co-authored-by: Isaac --- .../Elements/MainModal/backend/TabNavbar.jsx | 2 +- .../components/Elements/ItemCard/ItemCard.jsx | 2 +- .../marketplace/components/Items/Items.jsx | 6 +- src/features/marketplace/views/Added.jsx | 22 ++++---- src/features/misc/views/Marketplace.jsx | 55 +++++++++++-------- 5 files changed, 50 insertions(+), 37 deletions(-) diff --git a/src/components/Elements/MainModal/backend/TabNavbar.jsx b/src/components/Elements/MainModal/backend/TabNavbar.jsx index b8b7077a..fa0089da 100644 --- a/src/components/Elements/MainModal/backend/TabNavbar.jsx +++ b/src/components/Elements/MainModal/backend/TabNavbar.jsx @@ -216,7 +216,7 @@ const TabNavbar = ({ modalClose }) => { > {activeTab === tab.id && ( diff --git a/src/features/marketplace/components/Elements/ItemCard/ItemCard.jsx b/src/features/marketplace/components/Elements/ItemCard/ItemCard.jsx index 1196ebb2..cd8f6b93 100644 --- a/src/features/marketplace/components/Elements/ItemCard/ItemCard.jsx +++ b/src/features/marketplace/components/Elements/ItemCard/ItemCard.jsx @@ -90,7 +90,7 @@ function ItemCard({ item, type, onCollection, isCurator, cardStyle }) { )} {type === true && !onCollection ? ( - {variables.getMessage('marketplace:' + item.type)} + {variables.getMessage('marketplace:' + getName(item.type))} ) : null} diff --git a/src/features/marketplace/components/Items/Items.jsx b/src/features/marketplace/components/Items/Items.jsx index 7e2e4971..92dec2ed 100644 --- a/src/features/marketplace/components/Items/Items.jsx +++ b/src/features/marketplace/components/Items/Items.jsx @@ -9,13 +9,15 @@ const NewItems = ({ items, view }) => { case 'list': return ( - - + + + + {items.map((item, index) => ( setSubTab(item.name)} diff --git a/src/features/marketplace/views/Added.jsx b/src/features/marketplace/views/Added.jsx index 38baee89..1f5ed610 100644 --- a/src/features/marketplace/views/Added.jsx +++ b/src/features/marketplace/views/Added.jsx @@ -7,6 +7,7 @@ import Modal from 'react-modal'; import { SideloadFailedModal } from '../components/Elements/SideloadFailedModal/SideloadFailedModal'; import ItemPage from './oldItemPage'; import Items from '../components/Items/OldItems'; +import { NewItems } from '../components/Items/Items'; import { Dropdown, FileUpload } from 'components/Form/Settings'; import { Header, CustomActions } from 'components/Layout/Settings'; import { Button } from 'components/Elements'; @@ -178,6 +179,8 @@ export default class Added extends PureComponent { } render() { + console.log(this.state.installed); + const sideLoadBackendElements = () => ( <>
- - {variables.getMessage('addons:empty.title')} - - - {variables.getMessage('addons:empty.description')} - + {variables.getMessage('addons:empty.title')} + {variables.getMessage('addons:empty.description')}
@@ -261,7 +260,7 @@ export default class Added extends PureComponent { ` />*/} - this.setState({ installed: sortItems(this.state.installed, value) })} @@ -283,14 +282,17 @@ export default class Added extends PureComponent { text: variables.getMessage('addons:sort.z_a'), }, ]} - /> - */} + {/* this.toggle('item', input)} showCreateYourOwn={false} - /> + />*/} +
+ +
); } diff --git a/src/features/misc/views/Marketplace.jsx b/src/features/misc/views/Marketplace.jsx index 6002130e..73a995d6 100644 --- a/src/features/misc/views/Marketplace.jsx +++ b/src/features/misc/views/Marketplace.jsx @@ -1,4 +1,4 @@ -import { memo, useCallback, useEffect, useState } from 'react'; +import { memo, useCallback, useEffect, useState, useMemo } from 'react'; import variables from 'config/variables'; import { useMarketData } from 'features/marketplace/api/MarketplaceDataContext'; import MarketplaceTab from '../../marketplace/views/Browse'; @@ -71,29 +71,38 @@ function Marketplace(props) { ); }, [itemsFilter]); - const ItemView = useCallback( - () => ( -
- - + const viewOptions = useMemo(() => [ + { id: 'grid', icon: }, + { id: 'list', icon: }, + ], []); + + const ItemView = useCallback(() => { + return ( +
+ {viewOptions.map((option) => ( + + ))}
- ), - [itemsView], - ); + ); + }, [itemsView, setItemsView, viewOptions]); useEffect(() => { if (navigator.onLine === false || localStorage.getItem('offlineMode') === 'true') {
Name Type {variables.getMessage('settings:sections.quote.author')}