- {/* Categories */}
- {categories.length > 0 ? (
-
-
-
{t('market.categories')}
- {selectedCategory && (
- filterByCategory('')}>
- {t('market.clearCategoryFilter')}
-
- )}
-
-
- {categories.map((category) => (
-
- ))}
-
-
- )}
-
- {/* Tags */}
- {/* {tags.length > 0 && (
-
-
-
-
{t('market.tags')}
-
+ {/* Left sidebar for filters (local market only) */}
+ {isLocalTab && (
+
+
+ {/* Categories */}
+ {categories.length > 0 ? (
+
+
+
{t('market.categories')}
+ {selectedCategory && (
+ filterLocalByCategory('')}>
+ {t('market.clearCategoryFilter')}
+
+ )}
- {selectedTag && (
-
filterByTag('')}>
- {t('market.clearTagFilter')}
-
- )}
-
- {showTags && (
-
- {tags.map((tag) => (
+
+ {categories.map((category) => (
))}
- )}
-
- )} */}
+
+ ) : loading ? (
+
+
+
{t('market.categories')}
+
+
+
+
{t('app.loading')}
+
+
+ ) : (
+
+
+
{t('market.categories')}
+
+
{t('market.noCategories')}
+
+ )}
+
-
+ )}
{/* Main content area */}
@@ -287,27 +447,43 @@ const MarketPage: React.FC = () => {
) : servers.length === 0 ? (
-
{t('market.noServers')}
+
{isLocalTab ? t('market.noServers') : t('cloud.noServers')}
) : (
<>
{servers.map((server, index) => (
-
+ isLocalTab ? (
+
+ ) : (
+
+ )
))}
- {t('market.showing', {
- from: (currentPage - 1) * serversPerPage + 1,
- to: Math.min(currentPage * serversPerPage, allServers.length),
- total: allServers.length
- })}
+ {isLocalTab ? (
+ t('market.showing', {
+ from: (currentPage - 1) * serversPerPage + 1,
+ to: Math.min(currentPage * serversPerPage, allServers.length),
+ total: allServers.length
+ })
+ ) : (
+ t('cloud.showing', {
+ from: (currentPage - 1) * serversPerPage + 1,
+ to: Math.min(currentPage * serversPerPage, allServers.length),
+ total: allServers.length
+ })
+ )}
{
/>
-
>
)}
diff --git a/frontend/src/pages/ServersPage.tsx b/frontend/src/pages/ServersPage.tsx
index 9d7a6db..a79f3ea 100644
--- a/frontend/src/pages/ServersPage.tsx
+++ b/frontend/src/pages/ServersPage.tsx
@@ -60,15 +60,6 @@ const ServersPage: React.FC = () => {
{t('pages.servers.title')}
-