From de89539de106933c65be1e9f1172655353114353 Mon Sep 17 00:00:00 2001 From: sasha-astiadi Date: Fri, 7 Nov 2025 23:13:27 +0100 Subject: [PATCH] feat: redesign storage use cases section with tabbed layout - Replaced StorageUseCases with StorageUseCasesNew component featuring interactive tabs - Implemented two-column layout with tab content on left and image on right - Added three use case categories: distributed storage, data sovereignty, and content distribution --- src/pages/storage/StoragePage.tsx | 5 +- src/pages/storage/StorageUseCasesNew.tsx | 108 +++++++++++++++++++++++ 2 files changed, 111 insertions(+), 2 deletions(-) create mode 100644 src/pages/storage/StorageUseCasesNew.tsx diff --git a/src/pages/storage/StoragePage.tsx b/src/pages/storage/StoragePage.tsx index fa4a3d3..75113f1 100644 --- a/src/pages/storage/StoragePage.tsx +++ b/src/pages/storage/StoragePage.tsx @@ -2,10 +2,10 @@ import { AnimatedSection } from '../../components/AnimatedSection' import { StorageHero } from './StorageHero' import { StorageOverview } from './StorageOverview' import { StorageArchitecture } from './StorageArchitecture' -import { StorageUseCases } from './StorageUseCases' import { CallToAction } from './CallToAction' import { StorageCapabilitiesNew } from './StorageCapabilitiesNew' import { StorageCoreValue } from './StorageCoreValue' +import { StorageUseCasesNew } from './StorageUseCasesNew' export default function StoragePage() { return ( @@ -31,9 +31,10 @@ export default function StoragePage() { - + + diff --git a/src/pages/storage/StorageUseCasesNew.tsx b/src/pages/storage/StorageUseCasesNew.tsx new file mode 100644 index 0000000..05d9527 --- /dev/null +++ b/src/pages/storage/StorageUseCasesNew.tsx @@ -0,0 +1,108 @@ +"use client"; + +import { useState } from "react"; +import { Eyebrow, H3, P } from "@/components/Texts"; + +const tabs = [ + { + id: "distributed", + label: "Distributed Application Storage", + content: [ + { + item: "Application-native storage", + desc: "Serve data to services, agents, clusters, or edge workloads.", + }, + ], + }, + { + id: "sovereignty", + label: "Data Sovereignty & Compliance", + content: [ + { + item: "Residency-aware storage", + desc: "Keep data under your control, choose residency per dataset.", + }, + ], + }, + { + id: "distribution", + label: "Content Distribution", + content: [ + { + item: "Decentralized delivery", + desc: "Serve public or private assets globally, without centralized hosting.", + }, + ], + }, +]; + +export function StorageUseCasesNew() { + const [active, setActive] = useState("distributed"); + const current = tabs.find((t) => t.id === active)!; + + return ( +
+ + {/* Top lines */} +
+
+ +
+ + {/* ✅ Two columns: ALL TEXT LEFT, IMAGE RIGHT */} +
+ + {/* LEFT COLUMN: Full tab + content */} +
+ Use Cases +

Built for Real Data Workloads

+

+ Mycelium Storage adapts to compliance-driven enterprise data, distributed application workloads, + and global asset delivery — without giving up sovereignty. +

+ + {/* Tabs */} +
+ {tabs.map((tab) => ( + + ))} +
+ + {/* Content always stacked in a single column */} +
+ {current.content.map((c, i) => ( +
+

{c.item}

+

{c.desc}

+
+ ))} +
+
+ + {/* RIGHT COLUMN: Image */} +
+ Storage Illustration +
+
+
+ + {/* Bottom lines */} +
+
+
+ ); +}