convert about types from component to collection-type

This commit is contained in:
Schneider Roland
2025-01-19 21:57:33 +01:00
parent 741dd19588
commit c706a4c7d2
80 changed files with 2428 additions and 630 deletions

View File

@@ -13,27 +13,28 @@ import SubHeaderComponent from "@/components/subHeader.component";
import BootstrapComponent from "@/components/bootstrap.component";
import webApi from "@/app/api/web-client/web-api";
import aboutUsComponent from "@/components/about.us.component";
import pricingComponent from "@/components/pricing.component";
export default async function About() {
const pageData = await webApi.getAboutPage();
const {header,ourServices, aboutUs} = pageData;
const {header,
ourServices,
aboutUs,
contactUs,
ourSpecialities,
prices
} = pageData;
return (
<>
<SubHeaderComponent header1={header?.header1} header2={header?.header2} description={header?.description}/>
<OurServicesComponent title={ourServices?.title!} header={ourServices?.header!} description={ourServices?.description!} />
<AboutUsComponent
title={aboutUs.title!}
header={aboutUs.header!}
description={aboutUs.description!}
content={aboutUs.content!}
buttonText={aboutUs.buttonLabel!}
buttonUrl={aboutUs.buttonLink!}
/>
<OurSpecialitiesComponent />
<ContactUsComponent />
<PricingComponent />
{ aboutUs && <AboutUsComponent data={aboutUs}/>}
{ ourSpecialities && <OurSpecialitiesComponent config={ourSpecialities} /> }
{ contactUs && <ContactUsComponent contactUs={contactUs}/>}
{ prices && <PricingComponent config={prices} /> }
<QuotesComponent />
<BlogPostsComponent />
<SubscribeComponent />

View File

@@ -0,0 +1,89 @@
{
"populate": {
"header": {
"fields": ["header1","description"]
},
"feedbacks": {
"fields": ["*"],
"populate": {
"feedbacks": {
"fields": ["*"],
"populate": {
"customerImage": {
"fields": ["name","mime","url"]
}
}
}
}
},
"ourServices": {
"fields": ["*"],
"populate": {
"services": {
"fields": ["*"],
"populate": {
"image": {
"fields": ["name","mime","url"]
}
}
}
}
},
"aboutUs": {
"fields": ["*"],
"populate": {
"image": {
"fields": ["name","mime","url"]
}
}
},
"contactUs": {
"fields": ["*"]
},
"prices": {
"fields": ["*"],
"populate": {
"prices": {
"fields": ["*"],
"populate": {
"icon": {
"fields": ["name","mime","url"]
},
"image": {
"fields": ["name","mime","url"]
}
}
}
}
},
"ourSpecialities": {
"fields": ["*"] ,
"populate": {
"left1": {
"fields": ["*"]
},
"left2": {
"fields": ["*"]
},
"left3": {
"fields": ["*"]
},
"left4": {
"fields": ["*"]
},
"right1": {
"fields": ["*"]
},
"right2": {
"fields": ["*"]
},
"right3": {
"fields": ["*"]
},
"right4": {
"fields": ["*"]
}
}
}
}
}

View File

@@ -1,16 +1,22 @@
import {About_Plain} from "@/types/generated-strapi-interfaces/api/about";
import strapiClient from "@/app/api/strapi/strapi-client";
import {Payload} from "@/types/generated-strapi-interfaces/common/Payload";
import {StrapiQuery} from "@/app/api/strapi/strapi-query";
import qs from "qs";
import aboutQuery from "@/app/api/strapi/query/about.json";
class StrapiApi{
constructor( ) {
}
public getImageUrl(imagePath: string){
return strapiClient.getImageUrl(imagePath);
}
public async getAboutPage(): Promise<About_Plain>{
const query = qs.stringify(aboutQuery,{ arrayFormat: 'indices' , encode: false})
const payload = await strapiClient.httpGetJson<About_Plain>(
StrapiQuery.aboutUrl
"/api/about?"+ query
);
return payload?.data;

View File

@@ -7,6 +7,9 @@ class StrapiClient{
constructor(private strapiUrl: string = "http://localhost:1337") {
}
public getImageUrl(imagePath: string){
return this.strapiUrl + imagePath;
}
public async httpGet(path: string){
return await httpClient.httpGet(this.strapiUrl + path);
}

View File

@@ -1,21 +1,23 @@
import YogaImageComponent from "@/components/yoga.image.component";
import {
YogaAboutUsComponent,
YogaAboutUsComponent_Plain
} from "@/types/generated-strapi-interfaces/api/yoga-about-us-component";
import {StrapiFile} from "@/types/types";
import strapiApi from "@/app/api/strapi/strapi-api";
export interface Props{
title: string;
header: string;
description: string;
content: string;
buttonText: string,
buttonUrl: string
data: YogaAboutUsComponent_Plain
}
const AboutUsComponent = ({title,header,description,content,buttonText,buttonUrl}: Props) =>{
const AboutUsComponent = ( {data: {title,header,description,content,buttonText,buttonLink, image}}: Props) =>{
const fileImage = image as StrapiFile;
return (
<section className="aboutus_section">
<div className="container">
<div className="row">
<div className="col-lg-7 col-md-7 col-sm-12 col-xs-12">
<div className="aboutus_image">
<figure className="mb-0"><YogaImageComponent src="/assets/images/aboutus_image.png" alt="" className="img-fluid"/></figure>
<figure className="mb-0"><YogaImageComponent src={strapiApi.getImageUrl(fileImage.url)} alt="" className="img-fluid"/></figure>
</div>
<figure className="aboutus_top_shape left_shape mb-0">
<YogaImageComponent src="/assets/images/aboutus_top_shape.png" alt="" className="img-fluid"/>
@@ -34,7 +36,7 @@ const AboutUsComponent = ({title,header,description,content,buttonText,buttonUrl
<figure className="mb-0 purple_line"><YogaImageComponent src="/assets/images/aboutus_line.png" alt="" className="img-fluid" /></figure>
</div>
<div className="btn_wrapper">
<a href={buttonUrl} className="text-decoration-none get_started_btn">{buttonText}</a>
<a href={buttonLink} className="text-decoration-none get_started_btn">{buttonText}</a>
</div>
</div>
</div>

View File

@@ -1,39 +1,42 @@
import YogaImageComponent from "@/components/yoga.image.component";
import {YogaContactUs_Plain} from "@/types/generated-strapi-interfaces/api/yoga-contact-us";
const ContactUsComponent = () => {
export interface Props{
contactUs: YogaContactUs_Plain
}
const ContactUsComponent = ( { contactUs :{ header,firstName,lastName,phone,title,message,email,buttonText }}: Props) => {
return (
<section className="get_in_touch_section">
<div className="container">
<div className="row" data-aos="fade-up">
<div className="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div className="get_in_touch_content">
<h5>Get in touch</h5>
<h2>Get a Free Consultation Now</h2>
<h5>{title}</h5>
<h2>{header}</h2>
<form>
<div className="row">
<div className="col-lg-6 col-md-6 col-sm-6">
<div className="form-group mb-0">
<input type="text" name="fname" id="fname" className="form-control"
placeholder="First Name"/>
placeholder={firstName}/>
</div>
</div>
<div className="col-lg-6 col-md-6 col-sm-6">
<div className="form-group mb-0">
<input type="text" name="lname" id="lname"
className="form-control form_style" placeholder="Last Name"/>
className="form-control form_style" placeholder={lastName}/>
</div>
</div>
<div className="col-lg-6 col-md-6 col-sm-6">
<div className="form-group mb-0">
<input type="tel" name="phonenum" id="phonenum" className="form-control"
placeholder="Phone"/>
placeholder={phone}/>
</div>
</div>
<div className="col-lg-6 col-md-6 col-sm-6">
<div className="form-group mb-0">
<input type="email" name="emailaddrs" id="emailaddrs"
className="form-control form_style" placeholder="Email"/>
className="form-control form_style" placeholder={email}/>
</div>
</div>
</div>
@@ -41,12 +44,12 @@ const ContactUsComponent = () => {
<div className="col-lg-12">
<div className=" form-group mb-0">
<textarea rows={3} name="comment" id="msg" className="form-control"
placeholder="Message"></textarea>
placeholder={message}></textarea>
</div>
</div>
</div>
<div className="btn_wrapper">
<button type="submit" name="get_started" id="started">Get Started</button>
<button type="submit" name="get_started" id="started">{buttonText}</button>
</div>
</form>
</div>

View File

@@ -1,7 +1,24 @@
import YogaImageComponent from "@/components/yoga.image.component";
import {
OurSpecialitiesComponent_Plain
} from "@/types/generated-strapi-interfaces/components/yoga-site/OurSpecialitiesComponent";
import OurSpecialitiesItemComponent from "@/components/our.specialities.item.component";
import {YogaSpecialitiesComponent_Plain} from "@/types/generated-strapi-interfaces/api/yoga-specialities-component";
export interface Props{
config: YogaSpecialitiesComponent_Plain
}
const OurSpecialitiesComponent = () => {
const OurSpecialitiesComponent = ({ config: { title,header,description,
left1,
left2,
left3,
left4,
right1,
right2,
right3,
right4
} }: Props) => {
return (
<section className="our_specialties_section">
@@ -9,31 +26,19 @@ const OurSpecialitiesComponent = () => {
<div className="row">
<div className="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div className="our_specialties_heading_content">
<h5>Our Specialties</h5>
<h2>Why Choose Us</h2>
<p>Quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores nostrum exercitationem ullam corporis suscipit laboriosam</p>
<h5>{title}</h5>
<h2>{header}</h2>
<p>{description}</p>
</div>
</div>
</div>
<div className="row">
<div className="col-lg-3 col-md-4 col-sm-6 col-xs-12" data-aos="fade-right">
<div className="specialties_content_wrapper">
<div className="specialties_content s1">
<p className="specialties_name">Vinyasa Yoga</p>
<p className="specialties_paragraph">Dolor reaellendus temorius maiores alia</p>
</div>
<div className="specialties_content s2">
<p className="specialties_name">Slow Yoga</p>
<p className="specialties_paragraph">Rabore et dolore maga eiusmo rute aliua</p>
</div>
<div className="specialties_content s3">
<p className="specialties_name">Intuitive Yoga</p>
<p className="specialties_paragraph">Earum rerum hic tene sapiente delectus</p>
</div>
<div className="specialties_content s4">
<p className="specialties_name">Aroma Yoga</p>
<p className="specialties_paragraph">Neque orro quisquam est raui dolorem</p>
</div>
{ left1 && <OurSpecialitiesItemComponent config={left1} order={1} /> }
{ left2 && <OurSpecialitiesItemComponent config={left2} order={2} /> }
{ left3 && <OurSpecialitiesItemComponent config={left3} order={3} /> }
{ left4 && <OurSpecialitiesItemComponent config={left4} order={4} /> }
<figure className="specialties_left_line mb-0">
<YogaImageComponent src="/assets/images/specialties_left_line.png" alt="" className="img-fluid" />
</figure>
@@ -46,22 +51,10 @@ const OurSpecialitiesComponent = () => {
</div>
<div className="col-lg-3 col-md-4 col-sm-6 col-xs-12" data-aos="fade-right">
<div className="specialties_content_wrapper">
<div className="specialties_content specialties_content2 s5">
<p className="specialties_name">Kundalini Yoga</p>
<p className="specialties_paragraph">Dolor reaellendus temorius maiores alia</p>
</div>
<div className="specialties_content specialties_content2 s6">
<p className="specialties_name">Bikram Yoga</p>
<p className="specialties_paragraph">Rabore et dolore mae eiusmo rute aliua</p>
</div>
<div className="specialties_content specialties_content2 s7">
<p className="specialties_name">Mindfulness Training</p>
<p className="specialties_paragraph">Earum rerum hic tene sapiente delectus</p>
</div>
<div className="specialties_content specialties_content2 s8">
<p className="specialties_name">Workout Routines</p>
<p className="specialties_paragraph">Neque orro quisquam est raui dolorem</p>
</div>
{ right1 && <OurSpecialitiesItemComponent config={right1} position={"right"} order={5} /> }
{ right2 && <OurSpecialitiesItemComponent config={right2} position={"right"} order={6} /> }
{ right3 && <OurSpecialitiesItemComponent config={right3} position={"right"} order={7} /> }
{ right4 && <OurSpecialitiesItemComponent config={right4} position={"right"} order={8} /> }
<figure className="specialties_right_line mb-0">
<YogaImageComponent src="/assets/images/specialties_right_line.png" alt="" className="img-fluid" />
</figure>

View File

@@ -0,0 +1,32 @@
import YogaImageComponent from "@/components/yoga.image.component";
import {
OurSpecialitiesComponent_Plain
} from "@/types/generated-strapi-interfaces/components/yoga-site/OurSpecialitiesComponent";
import {TitleDescription_Plain} from "@/types/generated-strapi-interfaces/components/shared/TitleDescription";
import clsx from "clsx";
export interface Props{
config: TitleDescription_Plain,
position?: 'left' | 'right';
order: number;
}
const OurSpecialitiesItemComponent = ({ position = "left",order, config: { title,description,
} }: Props) => {
const orderClass = "s"+order;
return (
<div className={clsx({
"specialties_content": true,
"specialties_content2": position == 'right',
[orderClass]: true
})}>
<p className="specialties_name">{title}</p>
<p className="specialties_paragraph">{description}</p>
</div>
);
}
export default OurSpecialitiesItemComponent;

View File

@@ -0,0 +1,50 @@
import {YogaPrice_Plain} from "@/types/generated-strapi-interfaces/api/yoga-price";
import YogaImageComponent from "@/components/yoga.image.component";
import {StrapiFile} from "@/types/types";
import strapiApi from "@/app/api/strapi/strapi-api";
export interface Props{
config: YogaPrice_Plain
}
export function PriceItemComponent({config: {header,option1,option2,price,icon, image,buttonText}} : Props){
// there are some issues with the strapi generated types
const iconFile: StrapiFile = icon as StrapiFile;
const imageFile: StrapiFile = image as StrapiFile;
console.info("image:",strapiApi.getImageUrl(imageFile.url));
return (
<div className="col-lg-4 col-md-4 col-sm-6 col-xs-12">
<div className="pricing_plans_box_content">
<div className="pricing_plans_box_upper_portion">
<figure className="pricing_plans_image mb-0">
<YogaImageComponent src={strapiApi.getImageUrl(imageFile.url)} alt="" className="img-fluid"/>
</figure>
<div className="pricing_plans_box_image_content">
<figure className="mb-0">
<YogaImageComponent src={strapiApi.getImageUrl(iconFile.url)} alt=""
className="img-fluid"/>
</figure>
</div>
</div>
<div className="pricing_plans_box_lower_portion">
<h3>{header}</h3>
<ul className="list-unstyled">
<li>
<i className="fa-solid fa-check" aria-hidden="true"></i>{option1}
</li>
<li>
<i className="fa-solid fa-check" aria-hidden="true"></i>{option2}
</li>
</ul>
<div className="pricing_plans_span_wrapper">
<span className="price">{price} FT</span>
<span className="per_month">/per month</span>
</div>
<div className="btn_wrapper">
<a className="enroll_now_btn text-decoration-none" href="/pricing.html">{buttonText}</a>
</div>
</div>
</div>
</div>
);
}

View File

@@ -1,121 +1,129 @@
import YogaImageComponent from "@/components/yoga.image.component";
import {YogaPriceComponent_Plain} from "@/types/generated-strapi-interfaces/api/yoga-price-component";
import {PriceItemComponent} from "@/components/price.item.component";
const PricingComponent = () => {
export interface Props{
config: YogaPriceComponent_Plain
}
const PricingComponent = ({config: { title,header,description,prices}}: Props) => {
return (
<section className="pricing_plans_section">
<div className="container">
<div className="row">
<div className="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div className="pricing_plans_content">
<h5>What We Offer</h5>
<h2>Our Pricing Plans</h2>
<p>Molestiae non recusandae itaque earum rerum hic teneaur a sapiente delectus, rae aut
reiciendis officia deserunt mollitia animi omnis dolor</p>
<h5>{title}</h5>
<h2>{header}</h2>
<p>{description}</p>
</div>
</div>
</div>
<div className="row" data-aos="fade-up">
<div className="col-lg-4 col-md-4 col-sm-6 col-xs-12">
<div className="pricing_plans_box_content">
<div className="pricing_plans_box_upper_portion">
<figure className="pricing_plans_image mb-0">
<YogaImageComponent src="/assets/images/pricing_plan_1.png" alt="" className="img-fluid"/>
</figure>
<div className="pricing_plans_box_image_content">
<figure className="mb-0">
<YogaImageComponent src="/assets/images/pricing_plan_icon_1.png" alt="" className="img-fluid"/>
</figure>
</div>
</div>
<div className="pricing_plans_box_lower_portion">
<h3>Standard</h3>
<ul className="list-unstyled">
<li>
<i className="fa-solid fa-check" aria-hidden="true"></i>Pay as you go
</li>
<li>
<i className="fa-solid fa-check" aria-hidden="true"></i>Perfect for
non-residence
</li>
</ul>
<div className="pricing_plans_span_wrapper">
<span className="price">$30</span>
<span className="per_month">/per month</span>
</div>
<div className="btn_wrapper">
<a className="enroll_now_btn text-decoration-none" href="/pricing.html">Enroll
Now</a>
</div>
</div>
</div>
</div>
<div className="col-lg-4 col-md-4 col-sm-6 col-xs-12">
<div className="pricing_plans_box_content">
<div className="pricing_plans_box_upper_portion">
<figure className="pricing_plans_image mb-0">
<YogaImageComponent src="/assets/images/pricing_plan_2.png" alt="" className="img-fluid"/>
</figure>
<div className="pricing_plans_box_image_content">
<figure className="mb-0">
<YogaImageComponent src="/assets/images/pricing_plan_icon_2.png" alt="" className="img-fluid"/>
</figure>
</div>
</div>
<div className="pricing_plans_box_lower_portion second_lower_portion">
<h3>Professional</h3>
<ul className="list-unstyled">
<li>
<i className="fa-solid fa-check" aria-hidden="true"></i>Short-term comitment
</li>
<li>
<i className="fa-solid fa-check" aria-hidden="true"></i>Online training for all
</li>
</ul>
<div className="pricing_plans_span_wrapper">
<span className="price">$120</span>
<span className="per_month">/per month</span>
</div>
<div className="btn_wrapper">
<a className="enroll_now_btn text-decoration-none" href="/pricing.html">Enroll
Now</a>
</div>
</div>
</div>
</div>
<div className="col-lg-4 col-md-4 col-sm-6 col-xs-12">
<div className="pricing_plans_box_content">
<div className="pricing_plans_box_upper_portion">
<figure className="pricing_plans_image mb-0">
<YogaImageComponent src="/assets/images/pricing_plan_3.png" alt="" className="img-fluid"/>
</figure>
<div className="pricing_plans_box_image_content">
<figure className="mb-0">
<YogaImageComponent src="/assets/images/pricing_plan_icon_3.png" alt="" className="img-fluid"/>
</figure>
</div>
</div>
<div className="pricing_plans_box_lower_portion third_lower_portion">
<h3>Private</h3>
<ul className="list-unstyled">
<li>
<i className="fa-solid fa-check" aria-hidden="true"></i>Long-term comitment
</li>
<li>
<i className="fa-solid fa-check" aria-hidden="true"></i>24/7 Available
</li>
</ul>
<div className="pricing_plans_span_wrapper">
<span className="price">$250</span>
<span className="per_month">/per month</span>
</div>
<div className="btn_wrapper">
<a className="enroll_now_btn text-decoration-none" href="/pricing.html">Enroll
Now</a>
</div>
</div>
</div>
</div>
{
prices.map(value => <PriceItemComponent key={value.id} config={value} />)
}
{/* <div className="col-lg-4 col-md-4 col-sm-6 col-xs-12">*/}
{/* <div className="pricing_plans_box_content">*/}
{/* <div className="pricing_plans_box_upper_portion">*/}
{/* <figure className="pricing_plans_image mb-0">*/}
{/* <YogaImageComponent src="/assets/images/pricing_plan_1.png" alt="" className="img-fluid"/>*/}
{/* </figure>*/}
{/* <div className="pricing_plans_box_image_content">*/}
{/* <figure className="mb-0">*/}
{/* <YogaImageComponent src="/assets/images/pricing_plan_icon_1.png" alt="" className="img-fluid"/>*/}
{/* </figure>*/}
{/* </div>*/}
{/* </div>*/}
{/* <div className="pricing_plans_box_lower_portion">*/}
{/* <h3>Standard</h3>*/}
{/* <ul className="list-unstyled">*/}
{/* <li>*/}
{/* <i className="fa-solid fa-check" aria-hidden="true"></i>Pay as you go*/}
{/* </li>*/}
{/* <li>*/}
{/* <i className="fa-solid fa-check" aria-hidden="true"></i>Perfect for*/}
{/* non-residence*/}
{/* </li>*/}
{/* </ul>*/}
{/* <div className="pricing_plans_span_wrapper">*/}
{/* <span className="price">$30</span>*/}
{/* <span className="per_month">/per month</span>*/}
{/* </div>*/}
{/* <div className="btn_wrapper">*/}
{/* <a className="enroll_now_btn text-decoration-none" href="/pricing.html">Enroll*/}
{/* Now</a>*/}
{/* </div>*/}
{/* </div>*/}
{/* </div>*/}
{/* </div>*/}
{/* <div className="col-lg-4 col-md-4 col-sm-6 col-xs-12">*/}
{/* <div className="pricing_plans_box_content">*/}
{/* <div className="pricing_plans_box_upper_portion">*/}
{/* <figure className="pricing_plans_image mb-0">*/}
{/* <YogaImageComponent src="/assets/images/pricing_plan_2.png" alt="" className="img-fluid"/>*/}
{/* </figure>*/}
{/* <div className="pricing_plans_box_image_content">*/}
{/* <figure className="mb-0">*/}
{/* <YogaImageComponent src="/assets/images/pricing_plan_icon_2.png" alt="" className="img-fluid"/>*/}
{/* </figure>*/}
{/* </div>*/}
{/* </div>*/}
{/* <div className="pricing_plans_box_lower_portion second_lower_portion">*/}
{/* <h3>Professional</h3>*/}
{/* <ul className="list-unstyled">*/}
{/* <li>*/}
{/* <i className="fa-solid fa-check" aria-hidden="true"></i>Short-term comitment*/}
{/* </li>*/}
{/* <li>*/}
{/* <i className="fa-solid fa-check" aria-hidden="true"></i>Online training for all*/}
{/* </li>*/}
{/* </ul>*/}
{/* <div className="pricing_plans_span_wrapper">*/}
{/* <span className="price">$120</span>*/}
{/* <span className="per_month">/per month</span>*/}
{/* </div>*/}
{/* <div className="btn_wrapper">*/}
{/* <a className="enroll_now_btn text-decoration-none" href="/pricing.html">Enroll*/}
{/* Now</a>*/}
{/* </div>*/}
{/* </div>*/}
{/* </div>*/}
{/* </div>*/}
{/* <div className="col-lg-4 col-md-4 col-sm-6 col-xs-12">*/}
{/* <div className="pricing_plans_box_content">*/}
{/* <div className="pricing_plans_box_upper_portion">*/}
{/* <figure className="pricing_plans_image mb-0">*/}
{/* <YogaImageComponent src="/assets/images/pricing_plan_3.png" alt="" className="img-fluid"/>*/}
{/* </figure>*/}
{/* <div className="pricing_plans_box_image_content">*/}
{/* <figure className="mb-0">*/}
{/* <YogaImageComponent src="/assets/images/pricing_plan_icon_3.png" alt="" className="img-fluid"/>*/}
{/* </figure>*/}
{/* </div>*/}
{/* </div>*/}
{/* <div className="pricing_plans_box_lower_portion third_lower_portion">*/}
{/* <h3>Private</h3>*/}
{/* <ul className="list-unstyled">*/}
{/* <li>*/}
{/* <i className="fa-solid fa-check" aria-hidden="true"></i>Long-term comitment*/}
{/* </li>*/}
{/* <li>*/}
{/* <i className="fa-solid fa-check" aria-hidden="true"></i>24/7 Available*/}
{/* </li>*/}
{/* </ul>*/}
{/* <div className="pricing_plans_span_wrapper">*/}
{/* <span className="price">$250</span>*/}
{/* <span className="per_month">/per month</span>*/}
{/* </div>*/}
{/* <div className="btn_wrapper">*/}
{/* <a className="enroll_now_btn text-decoration-none" href="/pricing.html">Enroll*/}
{/* Now</a>*/}
{/* </div>*/}
{/* </div>*/}
{/* </div>*/}
{/* </div>*/}
</div>
</div>
</section>

View File

@@ -2,24 +2,29 @@
import { HeaderB } from '../components/yoga-site/HeaderB';
import { OurServicesComponent } from '../components/yoga-site/OurServicesComponent';
import { AboutUs } from '../components/yoga-site/AboutUs';
import { OurSpecialitiesComponent } from '../components/yoga-site/OurSpecialitiesComponent';
import { YogaContactUs } from './yoga-contact-us';
import { YogaPriceComponent } from './yoga-price-component';
import { YogaSpecialitiesComponent } from './yoga-specialities-component';
import { YogaAboutUsComponent } from './yoga-about-us-component';
import { HeaderB_Plain } from '../components/yoga-site/HeaderB';
import { OurServicesComponent_Plain } from '../components/yoga-site/OurServicesComponent';
import { AboutUs_Plain } from '../components/yoga-site/AboutUs';
import { OurSpecialitiesComponent_Plain } from '../components/yoga-site/OurSpecialitiesComponent';
import { YogaContactUs_Plain } from './yoga-contact-us';
import { YogaPriceComponent_Plain } from './yoga-price-component';
import { YogaSpecialitiesComponent_Plain } from './yoga-specialities-component';
import { YogaAboutUsComponent_Plain } from './yoga-about-us-component';
import { HeaderB_NoRelations } from '../components/yoga-site/HeaderB';
import { OurServicesComponent_NoRelations } from '../components/yoga-site/OurServicesComponent';
import { AboutUs_NoRelations } from '../components/yoga-site/AboutUs';
import { OurSpecialitiesComponent_NoRelations } from '../components/yoga-site/OurSpecialitiesComponent';
import { AdminPanelRelationPropertyModification } from '../common/AdminPanelRelationPropertyModification';
export interface About {
id: number;
attributes: {
createdAt: Date; updatedAt: Date; publishedAt?: Date; header?: HeaderB;
ourServices: OurServicesComponent;
aboutUs: AboutUs;
ourSpecialities?: OurSpecialitiesComponent;
contactUs?: { data: YogaContactUs };
prices?: { data: YogaPriceComponent };
ourSpecialities?: { data: YogaSpecialitiesComponent };
aboutUs?: { data: YogaAboutUsComponent };
locale: string;
localizations?: { data: About[] };
};
@@ -28,8 +33,10 @@ export interface About_Plain {
id: number;
createdAt: Date; updatedAt: Date; publishedAt?: Date; header?: HeaderB_Plain;
ourServices: OurServicesComponent_Plain;
aboutUs: AboutUs_Plain;
ourSpecialities?: OurSpecialitiesComponent_Plain;
contactUs?: YogaContactUs_Plain;
prices?: YogaPriceComponent_Plain;
ourSpecialities?: YogaSpecialitiesComponent_Plain;
aboutUs?: YogaAboutUsComponent_Plain;
locale: string;
localizations?: About_Plain[];
}
@@ -38,8 +45,10 @@ export interface About_NoRelations {
id: number;
createdAt: Date; updatedAt: Date; publishedAt?: Date; header?: HeaderB_NoRelations;
ourServices: OurServicesComponent_NoRelations;
aboutUs: AboutUs_NoRelations;
ourSpecialities?: OurSpecialitiesComponent_NoRelations;
contactUs?: number;
prices?: number;
ourSpecialities?: number;
aboutUs?: number;
locale: string;
localizations?: About[];
}
@@ -48,8 +57,10 @@ export interface About_AdminPanelLifeCycle {
id: number;
createdAt: Date; updatedAt: Date; publishedAt?: Date; header?: HeaderB_Plain;
ourServices: OurServicesComponent_Plain;
aboutUs: AboutUs_Plain;
ourSpecialities?: OurSpecialitiesComponent_Plain;
contactUs?: AdminPanelRelationPropertyModification<YogaContactUs_Plain>;
prices?: AdminPanelRelationPropertyModification<YogaPriceComponent_Plain>;
ourSpecialities?: AdminPanelRelationPropertyModification<YogaSpecialitiesComponent_Plain>;
aboutUs?: AdminPanelRelationPropertyModification<YogaAboutUsComponent_Plain>;
locale: string;
localizations?: About[];
}

View File

@@ -1,41 +0,0 @@
// Interface automatically generated by schemas-to-ts
import { Media } from '../components/shared/Media';
import { Quote } from '../components/shared/Quote';
import { Media_Plain } from '../components/shared/Media';
import { Quote_Plain } from '../components/shared/Quote';
import { Quote_NoRelations } from '../components/shared/Quote';
import { AdminPanelRelationPropertyModification } from '../common/AdminPanelRelationPropertyModification';
export interface Car {
id: number;
attributes: {
createdAt: Date; updatedAt: Date; publishedAt?: Date; name?: string;
description?: string;
image?: { data: Media };
myquote: Quote[];
};
}
export interface Car_Plain {
id: number;
createdAt: Date; updatedAt: Date; publishedAt?: Date; name?: string;
description?: string;
image?: Media_Plain;
myquote: Quote_Plain[];
}
export interface Car_NoRelations {
id: number;
createdAt: Date; updatedAt: Date; publishedAt?: Date; name?: string;
description?: string;
image?: number;
myquote: Quote_NoRelations[];
}
export interface Car_AdminPanelLifeCycle {
id: number;
createdAt: Date; updatedAt: Date; publishedAt?: Date; name?: string;
description?: string;
image?: AdminPanelRelationPropertyModification<Media_Plain>;
myquote: Quote_Plain[];
}

View File

@@ -0,0 +1,7 @@
export interface StrapiFile{
"id": string,
"documentId": string,
"name": string,
"mime": string,
"url": string
}