Include testimonials widget in mobile-app page

This commit is contained in:
widgeter
2023-08-07 14:36:23 +02:00
parent 86e9c570dd
commit b57222a6e3
2 changed files with 110 additions and 0 deletions

View File

@ -0,0 +1,65 @@
---
import Headline from '~/components/ui/Headline.astro';
import WidgetWrapper from '~/components/ui/WidgetWrapper.astro';
import type { Testimonials } from '~/types';
import CTA from '../ui/CTA.astro';
const {
title = '',
subtitle = '',
tagline = '',
testimonials = [],
callToAction,
id,
isDark = false,
classes = {},
bg = await Astro.slots.render('bg'),
} = Astro.props as Testimonials;
---
<WidgetWrapper id={id} isDark={isDark} containerClass={`max-w-6xl mx-auto ${classes?.container ?? ''}`} bg={bg}>
<Headline title={title} subtitle={subtitle} tagline={tagline} />
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6">
{
testimonials &&
testimonials.map(({ title, testimonial, name, job, image }) => (
<div class="flex h-auto">
<div class="flex flex-col p-4 md:p-6 rounded-md shadow-xl dark:shadow-none dark:border dark:border-slate-600">
{title && <h2 class="text-lg font-medium leading-6 pb-4">{title}</h2>}
{testimonial && (
<blockquote class="flex-auto">
<p class="text-muted">" {testimonial} "</p>
</blockquote>
)}
<hr class="border-slate-200 dark:border-slate-600 my-4" />
<div class="flex items-center">
{image && image.src && (
<img
src={image.src}
alt={image.alt}
class="h-10 w-10 rounded-full border border-slate-200 dark:border-slate-600"
/>
)}
<div class="grow ml-3">
{name && <p class="text-base font-semibold">{name}</p>}
{job && <p class="text-xs text-muted">{job}</p>}
</div>
</div>
</div>
</div>
))
}
</div>
{
callToAction && (
<div class="btn flex justify-center mx-auto w-fit mt-8 md:mt-12 font-medium">
<CTA callToAction={callToAction} />
</div>
)
}
</WidgetWrapper>