From d24001cd53bc9cc80cef8a055e3a1f721fd28020 Mon Sep 17 00:00:00 2001 From: ildyria Date: Mon, 14 Oct 2024 18:50:23 +0200 Subject: [PATCH] improve feature list --- src/components/widgets/FeaturesList.astro | 52 ++++ src/pages/get-supporter-edition.astro | 356 ++++++++++------------ src/types.d.ts | 24 +- 3 files changed, 222 insertions(+), 210 deletions(-) create mode 100644 src/components/widgets/FeaturesList.astro diff --git a/src/components/widgets/FeaturesList.astro b/src/components/widgets/FeaturesList.astro new file mode 100644 index 00000000..c38e6613 --- /dev/null +++ b/src/components/widgets/FeaturesList.astro @@ -0,0 +1,52 @@ +--- +import Headline from '~/components/ui/Headline.astro'; +import WidgetWrapper from '~/components/ui/WidgetWrapper.astro'; +import type { FeaturesList as Props } from '~/types'; +import Tick from '../ui/Tick.astro'; + +const { + title = await Astro.slots.render('title'), + subtitle = await Astro.slots.render('subtitle'), + tagline = await Astro.slots.render('tagline'), + products = [], + specs = [], + + id, + isDark = false, + classes = {}, + bg = await Astro.slots.render('bg'), +} = Astro.props; +--- + + + } /> +
+ + + + + { + products.map((name) => ( + + )) + } + + + + { + specs.map(({ feature, isHeader, values, available }) => ( + + {isHeader && } + {isHeader && products.map(() => } + {!isHeader && values && (values.map((val) => ))} + {!isHeader && available && available.map((yes) => )} + + )) + } + +
Features + +
)} + {!isHeader && {val}{yes && }
+
+
diff --git a/src/pages/get-supporter-edition.astro b/src/pages/get-supporter-edition.astro index b475f9f9..61692f16 100644 --- a/src/pages/get-supporter-edition.astro +++ b/src/pages/get-supporter-edition.astro @@ -1,13 +1,10 @@ --- import Layout from '~/layouts/PageLayout.astro'; -import Tick from '~/components/ui/Tick.astro'; import Hero from '~/components/widgets/Hero.astro'; -// import CallToAction from '~/components/widgets/CallToAction.astro'; import Prices from '~/components/widgets/Pricing.astro'; import FAQs from '~/components/widgets/FAQs.astro'; -import WidgetWrapper from '~/components/ui/WidgetWrapper.astro'; -import Headline from '~/components/ui/Headline.astro'; +import FeaturesList from '~/components/widgets/FeaturesList.astro'; const metadata = { title: 'Pre-Launch Landing Page', @@ -105,208 +102,167 @@ const metadata = { } ]} /> - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + SE']} + specs={[ + { + feature: 'Global', + isHeader: true, + }, + { + feature: 'Dark and Light themes', + available: [true, true], + }, + { + feature: 'Unlimited photos upload', + available: [true, true], + }, + { + feature: 'Unlimited number of albums', + available: [true, true], + }, + { + feature: 'Unlimited number of users', + available: [true, true], + }, + { + feature: 'Mutliple language supported', + available: [true, true], + }, - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + { + feature: 'Photo management', + isHeader: true, + }, + { + feature: 'Full sizes and other variants', + available: [true, true], + }, + { + feature: 'Auto rotation on import', + available: [true, true], + }, + { + feature: 'Exif Data decoding', + available: [true, true], + }, + { + feature: 'GPS data localization', + available: [true, true], + }, + { + feature: 'Upload by chunks v6', + available: [true, true], + }, + { + feature: 'Zip & download', + available: [true, true], + }, + { + feature: 'Album management', + isHeader: true, + }, + { + feature: 'Smart albums', + available: [true, true], + }, + { + feature: 'Unlimited photos per album', + available: [true, true], + }, + { + feature: 'Albums within albums', + available: [true, true], + }, + { + feature: 'Zip & download', + available: [true, true], + }, + { + feature: 'Custom sorting per album', + available: [true, true], + }, + { + feature: 'Justified/Masonry/Square photo layouts', + available: [true, true], + }, + { + feature: 'Photo layout custom per album', + available: [true, true], + }, + { + feature: 'Thumbs album aspect-ratio custom per album', + available: [true, true], + }, + { + feature: 'Customizable Album covers', + available: [true, true], + }, + { + feature: 'Customizable Album header photo', + available: [true, true], + }, + { + feature: 'Slideshow with previous & next v6', + available: [true, true], + }, - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + { + feature: 'User management', + isHeader: true, + }, + { + feature: 'Login with WebAuthn and Oauth', + available: [true, true], + }, + { + feature: 'Access rights management per album', + available: [true, true], + }, + { + feature: 'Cross-user sharing', + available: [true, true], + }, + { + feature: 'Space usage per user v6', + available: [false, true], + }, + { + feature: 'Upload quota per user v6', + available: [false, true], + }, + { + feature: 'Administration', + isHeader: true, + }, + { + feature: 'Logs', + available: [true, true], + }, + { + feature: 'Maintenance page', + available: [true, true], + }, + { + feature: 'Diagnostics tools', + available: [true, true], + }, + { + feature: 'Full manual settings control', + available: [true, true], + }, + { + feature: 'Statistics on your installation v6', + available: [false, true], + } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeaturesFreeLychee SE
Global
Dark and Light themes
Unlimited photos upload
Unlimited number of albums
Unlimited number of users
Multiple language supported
Photo management
Full sizes and other variants
Auto rotation on import
Exif Data decoding
Localization data reverse search
Upload by chunks
Zip & download
Album management
Smart albums
Unlimited photos per album
Possibility to create an album within another album
Zip & download
Custom sorting per album
Justified/Masonry/Square photo layout
Photo layout customizable per album
Selectable hero header photo per album
Slideshow with previous & next
User management
Login with WebAuthn and Oauth
Access rights management
Cross-user Album sharing
Space usage per user
Upload Quota per user
Administration
Logs
Maintenance page
Diagnostics tools
Full Manual settings control
Statistics on your installation
-
-
+ ]} + /> , Widget { isAfterContent?: boolean; } +export interface Spec { + feature: string; + isHeader?: boolean; + values?: string[]; + available?: boolean[]; +} + + +export interface FeaturesList extends Omit, Widget { + products: string[]; + specs: Spec[]; + +} + export interface Faqs extends Omit, Widget { iconUp?: string; iconDown?: string; @@ -298,13 +312,3 @@ export interface Content3 extends Omit, Widget { export interface Contact extends Omit, Form, Widget {} -export interface Spec { - type: string; - values?: string[]; - available?: boolean[]; -} - -export interface Products { - products: string[]; -} -