footer, feedback, subscribe
This commit is contained in:
parent
a068aeb375
commit
86dda89db9
6
api.http
6
api.http
@ -16,3 +16,9 @@ Accept: application/json
|
||||
GET {{domain}}/api/about?populate[header][fields][0]=header1&populate[header][fields][1]=description&populate[blogs][fields][0]=*&populate[blogs][populate][posts][fields][0]=name&populate[blogs][populate][posts][fields][1]=id&populate[blogs][populate][posts][fields][2]=header&populate[blogs][populate][posts][populate][tags][fields][0]=*&populate[blogs][populate][posts][populate][teaserImage][fields][0]=name&populate[blogs][populate][posts][populate][teaserImage][fields][1]=mime&populate[blogs][populate][posts][populate][teaserImage][fields][2]=url&populate[feedbacks][fields][0]=*&populate[feedbacks][populate][feedbacks][fields][0]=*&populate[feedbacks][populate][feedbacks][populate][customerImage][fields][0]=name&populate[feedbacks][populate][feedbacks][populate][customerImage][fields][1]=mime&populate[feedbacks][populate][feedbacks][populate][customerImage][fields][2]=url&populate[ourServices][fields][0]=*&populate[ourServices][populate][services][fields][0]=*&populate[ourServices][populate][services][populate][image][fields][0]=name&populate[ourServices][populate][services][populate][image][fields][1]=mime&populate[ourServices][populate][services][populate][image][fields][2]=url&populate[aboutUs][fields][0]=*&populate[aboutUs][populate][image][fields][0]=name&populate[aboutUs][populate][image][fields][1]=mime&populate[aboutUs][populate][image][fields][2]=url&populate[contactUs][fields][0]=*&populate[prices][fields][0]=*&populate[prices][populate][prices][fields][0]=*&populate[prices][populate][prices][populate][icon][fields][0]=name&populate[prices][populate][prices][populate][icon][fields][1]=mime&populate[prices][populate][prices][populate][icon][fields][2]=url&populate[prices][populate][prices][populate][image][fields][0]=name&populate[prices][populate][prices][populate][image][fields][1]=mime&populate[prices][populate][prices][populate][image][fields][2]=url&populate[ourSpecialities][fields][0]=*&populate[ourSpecialities][populate][left1][fields][0]=*&populate[ourSpecialities][populate][left2][fields][0]=*&populate[ourSpecialities][populate][left3][fields][0]=*&populate[ourSpecialities][populate][left4][fields][0]=*&populate[ourSpecialities][populate][right1][fields][0]=*&populate[ourSpecialities][populate][right2][fields][0]=*&populate[ourSpecialities][populate][right3][fields][0]=*&populate[ourSpecialities][populate][right4][fields][0]=*
|
||||
Accept: application/json
|
||||
#Authorization: Bearer {{token}}
|
||||
|
||||
|
||||
### GET request with a header
|
||||
GET {{domain}}/api/yoga-blog-posts/wmhqy1n8japcfpy0of4hauwm
|
||||
Accept: application/json
|
||||
#Authorization: Bearer {{token}}
|
||||
|
||||
@ -5,15 +5,13 @@ import AboutUsComponent from "@/components/about.us.component";
|
||||
import OurSpecialitiesComponent from "@/components/our.specialities.component";
|
||||
import ContactUsComponent from "@/components/contact.us.component";
|
||||
import PricingComponent from "@/components/pricing.component";
|
||||
import QuotesComponent from "@/components/quotes.component";
|
||||
import FeedbackComponent from "@/components/feedbackComponent";
|
||||
import BlogPostsComponent from "@/components/blog.posts.component";
|
||||
import FooterComponent from "@/components/footer.component";
|
||||
import SubscribeComponent from "@/components/subscribe.component";
|
||||
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();
|
||||
@ -24,22 +22,25 @@ export default async function About() {
|
||||
contactUs,
|
||||
ourSpecialities,
|
||||
prices,
|
||||
blogs
|
||||
blogs,
|
||||
subscribeNow,
|
||||
footer,
|
||||
feedbacks
|
||||
} = pageData;
|
||||
|
||||
|
||||
return (
|
||||
<>
|
||||
<SubHeaderComponent header1={header?.header1} header2={header?.header2} description={header?.description}/>
|
||||
<OurServicesComponent title={ourServices?.title!} header={ourServices?.header!} description={ourServices?.description!} />
|
||||
{ header && <SubHeaderComponent header1={header?.header1} header2={header?.header2} description={header?.description}/> }
|
||||
{ ourServices && <OurServicesComponent title={ourServices?.title!} header={ourServices?.header!} description={ourServices?.description!} /> }
|
||||
{ aboutUs && <AboutUsComponent data={aboutUs}/>}
|
||||
{ ourSpecialities && <OurSpecialitiesComponent config={ourSpecialities} /> }
|
||||
{ contactUs && <ContactUsComponent contactUs={contactUs}/>}
|
||||
{ prices && <PricingComponent config={prices} /> }
|
||||
<QuotesComponent />
|
||||
{ feedbacks && <FeedbackComponent config={feedbacks} /> }
|
||||
{ blogs && <BlogPostsComponent config={blogs} />}
|
||||
<SubscribeComponent />
|
||||
<FooterComponent />
|
||||
{subscribeNow && <SubscribeComponent config={subscribeNow} /> }
|
||||
{ footer && <FooterComponent config={footer} />}
|
||||
<AosComponent />
|
||||
<BootstrapComponent />
|
||||
|
||||
|
||||
@ -3,11 +3,34 @@
|
||||
"header": {
|
||||
"fields": ["header1","description"]
|
||||
},
|
||||
"footer": {
|
||||
"fields": ["*"],
|
||||
"populate": {
|
||||
"links": {
|
||||
"fields": ["*"]
|
||||
},
|
||||
"contactUsEmail": {
|
||||
"fields": ["*"]
|
||||
},
|
||||
"contactUsLocation": {
|
||||
"fields": ["*"]
|
||||
},
|
||||
"contactUsPhoneNumber": {
|
||||
"fields": ["*"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"subscribeNow": {
|
||||
"fields": ["*"]
|
||||
},
|
||||
"blogs": {
|
||||
"fields": ["*"],
|
||||
"populate": {
|
||||
"button": {
|
||||
"fields": ["*"]
|
||||
},
|
||||
"posts": {
|
||||
"fields": ["name", "id", "header" ],
|
||||
"fields": ["name", "id", "header","documentId" ],
|
||||
"populate": {
|
||||
"tags": {
|
||||
"fields": ["*" ]
|
||||
|
||||
@ -3,28 +3,36 @@ import strapiClient from "@/app/api/strapi/strapi-client";
|
||||
import {StrapiQuery} from "@/app/api/strapi/strapi-query";
|
||||
import qs from "qs";
|
||||
import aboutQuery from "@/app/api/strapi/query/about.json";
|
||||
import {YogaBlogPost_Plain} from "@/types/generated-strapi-interfaces/api/yoga-blog-post";
|
||||
|
||||
|
||||
class StrapiApi{
|
||||
constructor( ) {
|
||||
}
|
||||
|
||||
protected async getJson<T>(path: string, params?: object){
|
||||
const query = params ? qs.stringify(params,{ arrayFormat: 'indices' , encode: false}) : "";
|
||||
const payload = await strapiClient.httpGetJson<T>(
|
||||
path+ query
|
||||
);
|
||||
return payload?.data;
|
||||
}
|
||||
|
||||
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>(
|
||||
"/api/about?"+ query
|
||||
|
||||
);
|
||||
return payload?.data;
|
||||
|
||||
return this.getJson("/api/about?",aboutQuery);
|
||||
}
|
||||
|
||||
public getHomePage(){
|
||||
console.info('Get Home Page');
|
||||
return this.getJson("/api/home?",aboutQuery);
|
||||
|
||||
}
|
||||
|
||||
public getBlog(blogId: string): Promise<YogaBlogPost_Plain>{
|
||||
return this.getJson("/api/yoga-blog-posts/"+blogId,undefined);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
16
yoga-app/src/app/blog/[blogId]/page.tsx
Normal file
16
yoga-app/src/app/blog/[blogId]/page.tsx
Normal file
@ -0,0 +1,16 @@
|
||||
import strapiApi from "@/app/api/strapi/strapi-api";
|
||||
import clsx from "clsx";
|
||||
|
||||
export default async function BlogComponent({
|
||||
params,
|
||||
}: {
|
||||
params: Promise<{ blogId: string }>
|
||||
}){
|
||||
const blogId = (await params).blogId
|
||||
const blog = await strapiApi.getBlog(blogId);
|
||||
return (
|
||||
<div className={clsx("container", "text-primary")}>
|
||||
<h1 className={clsx("container", "text-primary")}>{blog.header}</h1>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
6
yoga-app/src/app/blog/page.tsx
Normal file
6
yoga-app/src/app/blog/page.tsx
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
export default function BlogListComponent(){
|
||||
return (
|
||||
<div>Blog list</div>
|
||||
)
|
||||
}
|
||||
@ -5,7 +5,7 @@ import AboutUsComponent from "@/components/about.us.component";
|
||||
import OurSpecialitiesComponent from "@/components/our.specialities.component";
|
||||
import ContactUsComponent from "@/components/contact.us.component";
|
||||
import PricingComponent from "@/components/pricing.component";
|
||||
import QuotesComponent from "@/components/quotes.component";
|
||||
import FeedbackComponent from "@/components/feedbackComponent";
|
||||
import BlogPostsComponent from "@/components/blog.posts.component";
|
||||
import FooterComponent from "@/components/footer.component";
|
||||
import SubscribeComponent from "@/components/subscribe.component";
|
||||
@ -18,7 +18,7 @@ export default function About() {
|
||||
<OurSpecialitiesComponent />
|
||||
<ContactUsComponent />
|
||||
<PricingComponent />
|
||||
<QuotesComponent />
|
||||
<FeedbackComponent />
|
||||
<BlogPostsComponent />
|
||||
<SubscribeComponent />
|
||||
<FooterComponent />
|
||||
|
||||
@ -5,7 +5,7 @@ import AboutUsComponent from "@/components/about.us.component";
|
||||
import OurSpecialitiesComponent from "@/components/our.specialities.component";
|
||||
import ContactUsComponent from "@/components/contact.us.component";
|
||||
import PricingComponent from "@/components/pricing.component";
|
||||
import QuotesComponent from "@/components/quotes.component";
|
||||
import FeedbackComponent from "@/components/feedbackComponent";
|
||||
import BlogPostsComponent from "@/components/blog.posts.component";
|
||||
import FooterComponent from "@/components/footer.component";
|
||||
import SubscribeComponent from "@/components/subscribe.component";
|
||||
@ -22,7 +22,7 @@ export default function Home() {
|
||||
<OurSpecialitiesComponent />
|
||||
<ContactUsComponent />
|
||||
<PricingComponent />
|
||||
<QuotesComponent />
|
||||
<FeedbackComponent />
|
||||
<BlogPostsComponent />
|
||||
<SubscribeComponent />
|
||||
<FooterComponent />
|
||||
|
||||
@ -5,7 +5,7 @@ import AboutUsComponent from "@/components/about.us.component";
|
||||
import OurSpecialitiesComponent from "@/components/our.specialities.component";
|
||||
import ContactUsComponent from "@/components/contact.us.component";
|
||||
import PricingComponent from "@/components/pricing.component";
|
||||
import QuotesComponent from "@/components/quotes.component";
|
||||
import FeedbackComponent from "@/components/feedbackComponent";
|
||||
import BlogPostsComponent from "@/components/blog.posts.component";
|
||||
import FooterComponent from "@/components/footer.component";
|
||||
import SubscribeComponent from "@/components/subscribe.component";
|
||||
@ -18,7 +18,7 @@ export default function About() {
|
||||
<OurSpecialitiesComponent />
|
||||
<ContactUsComponent />
|
||||
<PricingComponent />
|
||||
<QuotesComponent />
|
||||
<FeedbackComponent />
|
||||
<BlogPostsComponent />
|
||||
<SubscribeComponent />
|
||||
<FooterComponent />
|
||||
|
||||
@ -5,7 +5,7 @@ import AboutUsComponent from "@/components/about.us.component";
|
||||
import OurSpecialitiesComponent from "@/components/our.specialities.component";
|
||||
import ContactUsComponent from "@/components/contact.us.component";
|
||||
import PricingComponent from "@/components/pricing.component";
|
||||
import QuotesComponent from "@/components/quotes.component";
|
||||
import FeedbackComponent from "@/components/feedbackComponent";
|
||||
import BlogPostsComponent from "@/components/blog.posts.component";
|
||||
import FooterComponent from "@/components/footer.component";
|
||||
import SubscribeComponent from "@/components/subscribe.component";
|
||||
@ -18,7 +18,7 @@ export default function About() {
|
||||
<OurSpecialitiesComponent />
|
||||
<ContactUsComponent />
|
||||
<PricingComponent />
|
||||
<QuotesComponent />
|
||||
<FeedbackComponent />
|
||||
<BlogPostsComponent />
|
||||
<SubscribeComponent />
|
||||
<FooterComponent />
|
||||
|
||||
@ -1,11 +1,13 @@
|
||||
import YogaImageComponent from "@/components/yoga.image.component";
|
||||
import {YogaBlogPostsComponent_Plain} from "@/types/generated-strapi-interfaces/api/yoga-blog-posts-component";
|
||||
import BlogSinglePostComponent from "@/components/blog.single.post.component";
|
||||
|
||||
export interface Props {
|
||||
|
||||
config: YogaBlogPostsComponent_Plain
|
||||
}
|
||||
const BlogPostsComponent = ( {config: { title,header,description,posts} }: Props) => {
|
||||
const BlogPostsComponent = ( {config: { title,header,description,posts, button} }: Props) => {
|
||||
const teaserPosts = posts?.length ? posts.slice(0,2) : [];
|
||||
return (<section className="blog_posts_section">
|
||||
<div className="container">
|
||||
<div className="row">
|
||||
@ -18,37 +20,10 @@ const BlogPostsComponent = ( {config: { title,header,description,posts} }: Props
|
||||
</div>
|
||||
</div>
|
||||
<div className="row" data-aos="fade-up">
|
||||
<div className="col-lg-6 col-md-6 col-sm-12 col-xs-12">
|
||||
<div className="blog_posts_image position-relative">
|
||||
<figure className="mb-0"><YogaImageComponent src="/assets/images/blog_posts_1.png" alt=""
|
||||
className="img-fluid"/></figure>
|
||||
<div className="blog_posts_image_content">
|
||||
<span>YOGA</span>
|
||||
<h4>Yoga Effects on Brain Health: A Systematic Review of the Current Literature</h4>
|
||||
<div className="icon_wrapper">
|
||||
<a href="/single-post.html" className="text-decoration-none"><i
|
||||
className="fa-solid fa-arrow-right" aria-hidden="true"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-6 col-md-6 col-sm-12 col-xs-12">
|
||||
<div className="blog_posts_image position-relative">
|
||||
<figure className="mb-0"><YogaImageComponent src="/assets/images/blog_posts_2.png" alt=""
|
||||
className="img-fluid"/></figure>
|
||||
<div className="blog_posts_image_content">
|
||||
<span>FITNESS</span>
|
||||
<h4>Maintaining a regular yoga practice can provide physical health</h4>
|
||||
<div className="icon_wrapper">
|
||||
<a href="/single-post.html" className="text-decoration-none"><i
|
||||
className="fa-solid fa-arrow-right" aria-hidden="true"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{teaserPosts.map( value =><BlogSinglePostComponent post={value} /> )}
|
||||
</div>
|
||||
<div className="btn_wrapper">
|
||||
<a href="/single-post.html" className="text-decoration-none view_blog">View All Blogs</a>
|
||||
<a href={button?.link} className="text-decoration-none view_blog">{button?.label}</a>
|
||||
</div>
|
||||
<figure className="blog_posts_left_shape left_shape mb-0">
|
||||
<YogaImageComponent src="/assets/images/blog_posts_left_shape.png" alt="" className="img-fluid"/>
|
||||
|
||||
34
yoga-app/src/components/blog.single.post.component.tsx
Normal file
34
yoga-app/src/components/blog.single.post.component.tsx
Normal file
@ -0,0 +1,34 @@
|
||||
import YogaImageComponent from "@/components/yoga.image.component";
|
||||
import {YogaBlogPostsComponent_Plain} from "@/types/generated-strapi-interfaces/api/yoga-blog-posts-component";
|
||||
import {YogaBlogPost_Plain} from "@/types/generated-strapi-interfaces/api/yoga-blog-post";
|
||||
import {StrapiFile} from "@/types/types";
|
||||
import strapiApi from "@/app/api/strapi/strapi-api";
|
||||
|
||||
export interface Props {
|
||||
post: YogaBlogPost_Plain & {documentId?: string}
|
||||
}
|
||||
|
||||
const BlogSinglePostComponent = ({post: {header,teaserImage,tags,documentId} }: Props) => {
|
||||
const teaserFile: StrapiFile = teaserImage as StrapiFile;
|
||||
const tagText = tags?.length ? tags[0].tag : null;
|
||||
return (
|
||||
<div className="col-lg-6 col-md-6 col-sm-12 col-xs-12">
|
||||
<div className="blog_posts_image position-relative">
|
||||
<figure className="mb-0">
|
||||
<YogaImageComponent src={strapiApi.getImageUrl( teaserFile.url ) } alt=""
|
||||
className="img-fluid"/>
|
||||
</figure>
|
||||
<div className="blog_posts_image_content">
|
||||
<span>{tagText}</span>
|
||||
<h4>{header}</h4>
|
||||
<div className="icon_wrapper">
|
||||
<a href={"/blog/"+documentId} className="text-decoration-none"><i
|
||||
className="fa-solid fa-arrow-right" aria-hidden="true"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default BlogSinglePostComponent;
|
||||
65
yoga-app/src/components/feedbackComponent.tsx
Normal file
65
yoga-app/src/components/feedbackComponent.tsx
Normal file
@ -0,0 +1,65 @@
|
||||
'use client'
|
||||
import YogaImageComponent from "@/components/yoga.image.component";
|
||||
import {
|
||||
YogaCustomerFeedbackComponent_Plain
|
||||
} from "@/types/generated-strapi-interfaces/api/yoga-customer-feedback-component";
|
||||
import FeedbackItemComponent from "@/components/feedbackItemComponent";
|
||||
import {useState} from "react";
|
||||
|
||||
export interface Props{
|
||||
config: YogaCustomerFeedbackComponent_Plain
|
||||
}
|
||||
|
||||
const FeedbackComponent = ({ config: { feedbacks }}: Props) => {
|
||||
|
||||
const [index, setIndex] = useState(0);
|
||||
const move = (val: number) =>{
|
||||
setIndex(prevState => {
|
||||
let i = prevState;
|
||||
i = i + val;
|
||||
i = Math.min( Math.max(i,0), feedbacks.length )
|
||||
return i;
|
||||
})
|
||||
}
|
||||
return (
|
||||
<div className="testimonial_section">
|
||||
<div className="container">
|
||||
<div className="row" data-aos="fade-up">
|
||||
<div className="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<div id="carouselExampleControls" className="carousel slide" data-ride="carousel">
|
||||
<div className="carousel-inner">
|
||||
{feedbacks && feedbacks.map( (feedback,i) => {
|
||||
return (<FeedbackItemComponent active={index == i} config={feedback} />)
|
||||
} )}
|
||||
</div>
|
||||
<a className="carousel-control-prev" href="#carouselExampleControls" role="button"
|
||||
data-slide="prev"
|
||||
onClick={() => move(-1)}
|
||||
>
|
||||
<i className="fa-solid fa-arrow-left-long"></i>
|
||||
<span className="sr-only">Previous</span>
|
||||
</a>
|
||||
<a className="carousel-control-next" href="#carouselExampleControls" role="button"
|
||||
data-slide="next"
|
||||
onClick={() => move(1)}
|
||||
|
||||
>
|
||||
<i className="fa-solid fa-arrow-right-long"></i>
|
||||
<span className="sr-only">Next</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<figure className="testimonial_left_shape left_shape mb-0">
|
||||
<YogaImageComponent src="/assets/images/testimonial_left_shape.png" alt="" className="img-fluid"/>
|
||||
</figure>
|
||||
<figure className="testimonial_right_shape right_shape mb-0">
|
||||
<YogaImageComponent src="/assets/images/testimonial_right_shape.png" alt="" className="img-fluid"/>
|
||||
</figure>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
export default FeedbackComponent;
|
||||
32
yoga-app/src/components/feedbackItemComponent.tsx
Normal file
32
yoga-app/src/components/feedbackItemComponent.tsx
Normal file
@ -0,0 +1,32 @@
|
||||
import YogaImageComponent from "@/components/yoga.image.component";
|
||||
import {
|
||||
YogaCustomerFeedbackComponent_Plain
|
||||
} from "@/types/generated-strapi-interfaces/api/yoga-customer-feedback-component";
|
||||
import {YogaCustomerFeedback_Plain} from "@/types/generated-strapi-interfaces/api/yoga-customer-feedback";
|
||||
import {StrapiFile} from "@/types/types";
|
||||
import strapiApi from "@/app/api/strapi/strapi-api";
|
||||
import clsx from "clsx";
|
||||
|
||||
export interface Props {
|
||||
config: YogaCustomerFeedback_Plain,
|
||||
active: boolean
|
||||
}
|
||||
|
||||
const FeedbackComponent = ({active,config: {customerName, feedback, customerImage, customerDescription}}: Props) => {
|
||||
const imageFile: StrapiFile = customerImage as StrapiFile;
|
||||
return (
|
||||
<div className={clsx("carousel-item ", {"active":active })}>
|
||||
<div className="testimonial_content">
|
||||
<i className="fa-solid fa-quote-left"></i>
|
||||
<p className="testimonial_paragraph">“{feedback}”</p>
|
||||
<figure><YogaImageComponent src={strapiApi.getImageUrl(imageFile.url)} alt=""
|
||||
className="img-fluid"/></figure>
|
||||
<p className="testimonial_person_name">{customerName}</p>
|
||||
<span>{customerDescription}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
export default FeedbackComponent;
|
||||
@ -1,8 +1,24 @@
|
||||
import Link from "next/link";
|
||||
import YogaImageComponent from "@/components/yoga.image.component";
|
||||
import {YogaFooter_Plain} from "@/types/generated-strapi-interfaces/api/yoga-footer";
|
||||
|
||||
export interface Props{
|
||||
config: YogaFooter_Plain
|
||||
}
|
||||
const FooterComponent = ({ config: {
|
||||
aboutUsHeader,
|
||||
aboutUsContent,
|
||||
quickLinksHeader,
|
||||
links,
|
||||
contactInfoHeader,
|
||||
contactUsEmail,
|
||||
contactUsLocation,
|
||||
contactUsPhoneNumber,
|
||||
copyRight
|
||||
} }: Props) => {
|
||||
|
||||
|
||||
|
||||
const FooterComponent = () => {
|
||||
return (<section className="footer-section" id="footer_section">
|
||||
<div className="container">
|
||||
<div className="middle-portion">
|
||||
@ -17,11 +33,10 @@ const FooterComponent = () => {
|
||||
</div>
|
||||
<div className="col-lg-3 col-md-4 col-sm-6 col-xs-12">
|
||||
<div className="about_col">
|
||||
<h4>About Us</h4>
|
||||
<h4>{aboutUsHeader}</h4>
|
||||
<ul className="list-unstyled">
|
||||
<li>
|
||||
<p>Quisuam est rui dolorem ipsum quia dolor sit amet, consectetur adipisci velit
|
||||
sea...</p>
|
||||
<p>{aboutUsContent}</p>
|
||||
</li>
|
||||
<li className="icons"><a href="#"><i className="fa-brands fa-facebook-f"
|
||||
aria-hidden="true"></i></a></li>
|
||||
@ -34,42 +49,33 @@ const FooterComponent = () => {
|
||||
</div>
|
||||
<div className="col-lg-3 col-md-4 col-sm-6 col-xs-12 d-md-block d-none">
|
||||
<div className="links_col">
|
||||
<h4>Quick Links</h4>
|
||||
<ul className="list-unstyled">
|
||||
<h4>{quickLinksHeader}</h4>
|
||||
{links && <ul className="list-unstyled">
|
||||
{ links.map(link => (
|
||||
<li>
|
||||
<Link href="/index.html">Home</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/about.html">About Us</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services.html">Services</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/team.html">Team</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/contact.html">Contact Us</Link>
|
||||
<Link href={link.linkHref!}>{link.linkLabel}</Link>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-lg-3 col-md-4 col-sm-6 col-xs-12 d-sm-block d-none">
|
||||
<div className="contact_col">
|
||||
<h4>Contact Info</h4>
|
||||
<h4>{contactInfoHeader}</h4>
|
||||
<ul className="list-unstyled">
|
||||
<li className="contact_icons">
|
||||
{ contactUsPhoneNumber && <li className="contact_icons">
|
||||
<i className="fa-solid fa-phone"></i>
|
||||
<a href="tel:+61383766284" className="text-decoration-none">+61 3 8376 6284</a>
|
||||
</li>
|
||||
<a href={contactUsPhoneNumber.linkHref} className="text-decoration-none">{contactUsPhoneNumber.linkLabel}</a>
|
||||
</li>}
|
||||
<li className="contact_icons">
|
||||
<i className="fa-sharp fa-solid fa-envelope"></i>
|
||||
<a href="mailto:Info@yogastic.om"
|
||||
className="text-decoration-none">Info@yogastic.om</a>
|
||||
<a href={contactUsEmail?.linkHref}
|
||||
className="text-decoration-none">{contactUsEmail?.linkLabel}</a>
|
||||
</li>
|
||||
<li className="mb-0">
|
||||
<i className="fa-solid fa-location-dot location"></i>
|
||||
<span>21 King Street Melbourne, 3000, Australia</span>
|
||||
<span>{contactUsLocation?.linkLabel}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -79,7 +85,7 @@ const FooterComponent = () => {
|
||||
</div>
|
||||
<div className="bottom-portion">
|
||||
<div className="copyright col-xl-12">
|
||||
<p>Copyright 2022, Yogastic.com All Rights Reserved.</p>
|
||||
<p>{copyRight}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="footer_shape right_shape">
|
||||
|
||||
@ -1,70 +0,0 @@
|
||||
import YogaImageComponent from "@/components/yoga.image.component";
|
||||
|
||||
|
||||
const QuotesComponent = () => {
|
||||
return (
|
||||
<div className="testimonial_section">
|
||||
<div className="container">
|
||||
<div className="row" data-aos="fade-up">
|
||||
<div className="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<div id="carouselExampleControls" className="carousel slide" data-ride="carousel">
|
||||
<div className="carousel-inner">
|
||||
<div className="carousel-item active">
|
||||
<div className="testimonial_content">
|
||||
<i className="fa-solid fa-quote-left"></i>
|
||||
<p className="testimonial_paragraph">“Quisuam est, qui dolorem ipsum quia dolor
|
||||
sit amet, consec velit sed ruia non nuam
|
||||
eius modi tempora incidunt ut magnam aliruam auzerat voluptatem autenim rea
|
||||
minima
|
||||
exercita ionem ullam corporis suscitnis officiis debitis aut rerum
|
||||
necessitatibus saepe
|
||||
evenietut aer voluptates”</p>
|
||||
<figure><YogaImageComponent src="/assets/images/testimonial_image.png" alt=""
|
||||
className="img-fluid"/></figure>
|
||||
<p className="testimonial_person_name">Himala Joerge</p>
|
||||
<span>Happy client</span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="carousel-item">
|
||||
<div className="testimonial_content">
|
||||
<i className="fa-solid fa-quote-left"></i>
|
||||
<p className="testimonial_paragraph">“Quisuam est, qui dolorem ipsum quia dolor
|
||||
sit amet, consec velit sed ruia non nuam
|
||||
eius modi tempora incidunt ut magnam aliruam auzerat voluptatem autenim rea
|
||||
minima
|
||||
exercita ionem ullam corporis suscitnis officiis debitis aut rerum
|
||||
necessitatibus saepe
|
||||
evenietut aer voluptates”</p>
|
||||
<figure><YogaImageComponent src="/assets/images/testimonial_image.png" alt=""
|
||||
className="img-fluid"/></figure>
|
||||
<p className="testimonial_person_name">Himala Joerge</p>
|
||||
<span>Happy client</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a className="carousel-control-prev" href="#carouselExampleControls" role="button"
|
||||
data-slide="prev">
|
||||
<i className="fa-solid fa-arrow-left-long"></i>
|
||||
<span className="sr-only">Previous</span>
|
||||
</a>
|
||||
<a className="carousel-control-next" href="#carouselExampleControls" role="button"
|
||||
data-slide="next">
|
||||
<i className="fa-solid fa-arrow-right-long"></i>
|
||||
<span className="sr-only">Next</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<figure className="testimonial_left_shape left_shape mb-0">
|
||||
<YogaImageComponent src="/assets/images/testimonial_left_shape.png" alt="" className="img-fluid"/>
|
||||
</figure>
|
||||
<figure className="testimonial_right_shape right_shape mb-0">
|
||||
<YogaImageComponent src="/assets/images/testimonial_right_shape.png" alt="" className="img-fluid"/>
|
||||
</figure>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
export default QuotesComponent;
|
||||
@ -1,6 +1,11 @@
|
||||
import YogaImageComponent from "@/components/yoga.image.component";
|
||||
|
||||
const SubscribeComponent = () => {
|
||||
import {
|
||||
YogaSubscribeNowComponent_Plain
|
||||
} from "@/types/generated-strapi-interfaces/api/yoga-subscribe-now-component";
|
||||
export interface Props{
|
||||
config: YogaSubscribeNowComponent_Plain
|
||||
}
|
||||
const SubscribeComponent = ({config: {title,header,placeHolderEmail,buttonSubscribeLabel}}: Props) => {
|
||||
return (
|
||||
<section className="subscribe_section">
|
||||
<div className="container">
|
||||
@ -8,14 +13,14 @@ const SubscribeComponent = () => {
|
||||
<div className="row">
|
||||
<div className="col-lg-7 col-md-7 col-sm-6 col-xs-12" data-aos="fade-right">
|
||||
<div className="subscribe_content">
|
||||
<h5>Subscribe now</h5>
|
||||
<h2>Get the Latest Updates With Our Newletter</h2>
|
||||
<h5>{title}</h5>
|
||||
<h2>{header}</h2>
|
||||
<form method="POST">
|
||||
<div className="form-row">
|
||||
<div className="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<input type="email" name="email" id="emailadd" className="form-control"
|
||||
placeholder="Enter You Email"/>
|
||||
<button type="submit" name="btnsubmit" id="submitbutton">Subscribe</button>
|
||||
placeholder={placeHolderEmail}/>
|
||||
<button type="submit" name="btnsubmit" id="submitbutton">{buttonSubscribeLabel}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@ -8,6 +8,8 @@ import { YogaAboutUsComponent } from './yoga-about-us-component';
|
||||
import { YogaCustomerFeedbackComponent } from './yoga-customer-feedback-component';
|
||||
import { YogaOurServicesComponent } from './yoga-our-services-component';
|
||||
import { YogaBlogPostsComponent } from './yoga-blog-posts-component';
|
||||
import { YogaSubscribeNowComponent } from './yoga-subscribe-now-component';
|
||||
import { YogaFooter } from './yoga-footer';
|
||||
import { HeaderB_Plain } from '../components/yoga-site/HeaderB';
|
||||
import { YogaContactUs_Plain } from './yoga-contact-us';
|
||||
import { YogaPriceComponent_Plain } from './yoga-price-component';
|
||||
@ -16,6 +18,8 @@ import { YogaAboutUsComponent_Plain } from './yoga-about-us-component';
|
||||
import { YogaCustomerFeedbackComponent_Plain } from './yoga-customer-feedback-component';
|
||||
import { YogaOurServicesComponent_Plain } from './yoga-our-services-component';
|
||||
import { YogaBlogPostsComponent_Plain } from './yoga-blog-posts-component';
|
||||
import { YogaSubscribeNowComponent_Plain } from './yoga-subscribe-now-component';
|
||||
import { YogaFooter_Plain } from './yoga-footer';
|
||||
import { HeaderB_NoRelations } from '../components/yoga-site/HeaderB';
|
||||
import { AdminPanelRelationPropertyModification } from '../common/AdminPanelRelationPropertyModification';
|
||||
|
||||
@ -30,6 +34,8 @@ export interface About {
|
||||
feedbacks?: { data: YogaCustomerFeedbackComponent };
|
||||
ourServices?: { data: YogaOurServicesComponent };
|
||||
blogs?: { data: YogaBlogPostsComponent };
|
||||
subscribeNow?: { data: YogaSubscribeNowComponent };
|
||||
footer?: { data: YogaFooter };
|
||||
locale: string;
|
||||
localizations?: { data: About[] };
|
||||
};
|
||||
@ -44,6 +50,8 @@ export interface About_Plain {
|
||||
feedbacks?: YogaCustomerFeedbackComponent_Plain;
|
||||
ourServices?: YogaOurServicesComponent_Plain;
|
||||
blogs?: YogaBlogPostsComponent_Plain;
|
||||
subscribeNow?: YogaSubscribeNowComponent_Plain;
|
||||
footer?: YogaFooter_Plain;
|
||||
locale: string;
|
||||
localizations?: About_Plain[];
|
||||
}
|
||||
@ -58,6 +66,8 @@ export interface About_NoRelations {
|
||||
feedbacks?: number;
|
||||
ourServices?: number;
|
||||
blogs?: number;
|
||||
subscribeNow?: number;
|
||||
footer?: number;
|
||||
locale: string;
|
||||
localizations?: About[];
|
||||
}
|
||||
@ -72,6 +82,8 @@ export interface About_AdminPanelLifeCycle {
|
||||
feedbacks?: AdminPanelRelationPropertyModification<YogaCustomerFeedbackComponent_Plain>;
|
||||
ourServices?: AdminPanelRelationPropertyModification<YogaOurServicesComponent_Plain>;
|
||||
blogs?: AdminPanelRelationPropertyModification<YogaBlogPostsComponent_Plain>;
|
||||
subscribeNow?: AdminPanelRelationPropertyModification<YogaSubscribeNowComponent_Plain>;
|
||||
footer?: AdminPanelRelationPropertyModification<YogaFooter_Plain>;
|
||||
locale: string;
|
||||
localizations?: About[];
|
||||
}
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
// Interface automatically generated by schemas-to-ts
|
||||
|
||||
import { YogaBlogPost } from './yoga-blog-post';
|
||||
import { Button } from '../components/yoga-site/Button';
|
||||
import { YogaBlogPost_Plain } from './yoga-blog-post';
|
||||
import { Button_Plain } from '../components/yoga-site/Button';
|
||||
import { Button_NoRelations } from '../components/yoga-site/Button';
|
||||
import { AdminPanelRelationPropertyModification } from '../common/AdminPanelRelationPropertyModification';
|
||||
|
||||
export interface YogaBlogPostsComponent {
|
||||
@ -12,6 +15,7 @@ export interface YogaBlogPostsComponent {
|
||||
header?: string;
|
||||
description?: string;
|
||||
posts: { data: YogaBlogPost[] };
|
||||
button?: Button;
|
||||
};
|
||||
}
|
||||
export interface YogaBlogPostsComponent_Plain {
|
||||
@ -21,6 +25,7 @@ export interface YogaBlogPostsComponent_Plain {
|
||||
header?: string;
|
||||
description?: string;
|
||||
posts: YogaBlogPost_Plain[];
|
||||
button?: Button_Plain;
|
||||
}
|
||||
|
||||
export interface YogaBlogPostsComponent_NoRelations {
|
||||
@ -30,6 +35,7 @@ export interface YogaBlogPostsComponent_NoRelations {
|
||||
header?: string;
|
||||
description?: string;
|
||||
posts: number[];
|
||||
button?: Button_NoRelations;
|
||||
}
|
||||
|
||||
export interface YogaBlogPostsComponent_AdminPanelLifeCycle {
|
||||
@ -39,4 +45,5 @@ export interface YogaBlogPostsComponent_AdminPanelLifeCycle {
|
||||
header?: string;
|
||||
description?: string;
|
||||
posts: AdminPanelRelationPropertyModification<YogaBlogPost_Plain>;
|
||||
button?: Button_Plain;
|
||||
}
|
||||
|
||||
@ -0,0 +1,62 @@
|
||||
// Interface automatically generated by schemas-to-ts
|
||||
|
||||
import { Link } from '../components/yoga-site/Link';
|
||||
import { Link_Plain } from '../components/yoga-site/Link';
|
||||
import { Link_NoRelations } from '../components/yoga-site/Link';
|
||||
|
||||
export interface YogaFooter {
|
||||
id: number;
|
||||
attributes: {
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; aboutUsHeader?: string;
|
||||
aboutUsContent?: string;
|
||||
quickLinksHeader?: string;
|
||||
contactInfoHeader?: string;
|
||||
links: Link[];
|
||||
contactUsPhoneNumber?: Link;
|
||||
contactUsEmail?: Link;
|
||||
contactUsLocation?: Link;
|
||||
copyRight?: string;
|
||||
name?: string;
|
||||
};
|
||||
}
|
||||
export interface YogaFooter_Plain {
|
||||
id: number;
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; aboutUsHeader?: string;
|
||||
aboutUsContent?: string;
|
||||
quickLinksHeader?: string;
|
||||
contactInfoHeader?: string;
|
||||
links: Link_Plain[];
|
||||
contactUsPhoneNumber?: Link_Plain;
|
||||
contactUsEmail?: Link_Plain;
|
||||
contactUsLocation?: Link_Plain;
|
||||
copyRight?: string;
|
||||
name?: string;
|
||||
}
|
||||
|
||||
export interface YogaFooter_NoRelations {
|
||||
id: number;
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; aboutUsHeader?: string;
|
||||
aboutUsContent?: string;
|
||||
quickLinksHeader?: string;
|
||||
contactInfoHeader?: string;
|
||||
links: Link_NoRelations[];
|
||||
contactUsPhoneNumber?: Link_NoRelations;
|
||||
contactUsEmail?: Link_NoRelations;
|
||||
contactUsLocation?: Link_NoRelations;
|
||||
copyRight?: string;
|
||||
name?: string;
|
||||
}
|
||||
|
||||
export interface YogaFooter_AdminPanelLifeCycle {
|
||||
id: number;
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; aboutUsHeader?: string;
|
||||
aboutUsContent?: string;
|
||||
quickLinksHeader?: string;
|
||||
contactInfoHeader?: string;
|
||||
links: Link_Plain[];
|
||||
contactUsPhoneNumber?: Link_Plain;
|
||||
contactUsEmail?: Link_Plain;
|
||||
contactUsLocation?: Link_Plain;
|
||||
copyRight?: string;
|
||||
name?: string;
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
// Interface automatically generated by schemas-to-ts
|
||||
|
||||
export interface YogaSubscribeNowComponent {
|
||||
id: number;
|
||||
attributes: {
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; title?: string;
|
||||
header?: string;
|
||||
placeHolderEmail?: string;
|
||||
buttonSubscribeLabel?: string;
|
||||
};
|
||||
}
|
||||
export interface YogaSubscribeNowComponent_Plain {
|
||||
id: number;
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; title?: string;
|
||||
header?: string;
|
||||
placeHolderEmail?: string;
|
||||
buttonSubscribeLabel?: string;
|
||||
}
|
||||
|
||||
export interface YogaSubscribeNowComponent_NoRelations {
|
||||
id: number;
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; title?: string;
|
||||
header?: string;
|
||||
placeHolderEmail?: string;
|
||||
buttonSubscribeLabel?: string;
|
||||
}
|
||||
|
||||
export interface YogaSubscribeNowComponent_AdminPanelLifeCycle {
|
||||
id: number;
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; title?: string;
|
||||
header?: string;
|
||||
placeHolderEmail?: string;
|
||||
buttonSubscribeLabel?: string;
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
// Interface automatically generated by schemas-to-ts
|
||||
|
||||
export interface Button {
|
||||
label?: string;
|
||||
link?: string;
|
||||
}
|
||||
export interface Button_Plain {
|
||||
label?: string;
|
||||
link?: string;
|
||||
}
|
||||
|
||||
export interface Button_NoRelations {
|
||||
label?: string;
|
||||
link?: string;
|
||||
}
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
// Interface automatically generated by schemas-to-ts
|
||||
|
||||
export interface Link {
|
||||
linkLabel?: string;
|
||||
linkHref?: string;
|
||||
}
|
||||
export interface Link_Plain {
|
||||
linkLabel?: string;
|
||||
linkHref?: string;
|
||||
}
|
||||
|
||||
export interface Link_NoRelations {
|
||||
linkLabel?: string;
|
||||
linkHref?: string;
|
||||
}
|
||||
|
||||
@ -8,6 +8,8 @@ import { YogaAboutUsComponent } from './yoga-about-us-component';
|
||||
import { YogaCustomerFeedbackComponent } from './yoga-customer-feedback-component';
|
||||
import { YogaOurServicesComponent } from './yoga-our-services-component';
|
||||
import { YogaBlogPostsComponent } from './yoga-blog-posts-component';
|
||||
import { YogaSubscribeNowComponent } from './yoga-subscribe-now-component';
|
||||
import { YogaFooter } from './yoga-footer';
|
||||
import { HeaderB_Plain } from '../components/yoga-site/HeaderB';
|
||||
import { YogaContactUs_Plain } from './yoga-contact-us';
|
||||
import { YogaPriceComponent_Plain } from './yoga-price-component';
|
||||
@ -16,6 +18,8 @@ import { YogaAboutUsComponent_Plain } from './yoga-about-us-component';
|
||||
import { YogaCustomerFeedbackComponent_Plain } from './yoga-customer-feedback-component';
|
||||
import { YogaOurServicesComponent_Plain } from './yoga-our-services-component';
|
||||
import { YogaBlogPostsComponent_Plain } from './yoga-blog-posts-component';
|
||||
import { YogaSubscribeNowComponent_Plain } from './yoga-subscribe-now-component';
|
||||
import { YogaFooter_Plain } from './yoga-footer';
|
||||
import { HeaderB_NoRelations } from '../components/yoga-site/HeaderB';
|
||||
import { AdminPanelRelationPropertyModification } from '../common/AdminPanelRelationPropertyModification';
|
||||
|
||||
@ -30,6 +34,8 @@ export interface About {
|
||||
feedbacks?: { data: YogaCustomerFeedbackComponent };
|
||||
ourServices?: { data: YogaOurServicesComponent };
|
||||
blogs?: { data: YogaBlogPostsComponent };
|
||||
subscribeNow?: { data: YogaSubscribeNowComponent };
|
||||
footer?: { data: YogaFooter };
|
||||
locale: string;
|
||||
localizations?: { data: About[] };
|
||||
};
|
||||
@ -44,6 +50,8 @@ export interface About_Plain {
|
||||
feedbacks?: YogaCustomerFeedbackComponent_Plain;
|
||||
ourServices?: YogaOurServicesComponent_Plain;
|
||||
blogs?: YogaBlogPostsComponent_Plain;
|
||||
subscribeNow?: YogaSubscribeNowComponent_Plain;
|
||||
footer?: YogaFooter_Plain;
|
||||
locale: string;
|
||||
localizations?: About_Plain[];
|
||||
}
|
||||
@ -58,6 +66,8 @@ export interface About_NoRelations {
|
||||
feedbacks?: number;
|
||||
ourServices?: number;
|
||||
blogs?: number;
|
||||
subscribeNow?: number;
|
||||
footer?: number;
|
||||
locale: string;
|
||||
localizations?: About[];
|
||||
}
|
||||
@ -72,6 +82,8 @@ export interface About_AdminPanelLifeCycle {
|
||||
feedbacks?: AdminPanelRelationPropertyModification<YogaCustomerFeedbackComponent_Plain>;
|
||||
ourServices?: AdminPanelRelationPropertyModification<YogaOurServicesComponent_Plain>;
|
||||
blogs?: AdminPanelRelationPropertyModification<YogaBlogPostsComponent_Plain>;
|
||||
subscribeNow?: AdminPanelRelationPropertyModification<YogaSubscribeNowComponent_Plain>;
|
||||
footer?: AdminPanelRelationPropertyModification<YogaFooter_Plain>;
|
||||
locale: string;
|
||||
localizations?: About[];
|
||||
}
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
// Interface automatically generated by schemas-to-ts
|
||||
|
||||
import { YogaBlogPost } from './yoga-blog-post';
|
||||
import { Button } from '../components/yoga-site/Button';
|
||||
import { YogaBlogPost_Plain } from './yoga-blog-post';
|
||||
import { Button_Plain } from '../components/yoga-site/Button';
|
||||
import { Button_NoRelations } from '../components/yoga-site/Button';
|
||||
import { AdminPanelRelationPropertyModification } from '../common/AdminPanelRelationPropertyModification';
|
||||
|
||||
export interface YogaBlogPostsComponent {
|
||||
@ -12,6 +15,7 @@ export interface YogaBlogPostsComponent {
|
||||
header?: string;
|
||||
description?: string;
|
||||
posts: { data: YogaBlogPost[] };
|
||||
button?: Button;
|
||||
};
|
||||
}
|
||||
export interface YogaBlogPostsComponent_Plain {
|
||||
@ -21,6 +25,7 @@ export interface YogaBlogPostsComponent_Plain {
|
||||
header?: string;
|
||||
description?: string;
|
||||
posts: YogaBlogPost_Plain[];
|
||||
button?: Button_Plain;
|
||||
}
|
||||
|
||||
export interface YogaBlogPostsComponent_NoRelations {
|
||||
@ -30,6 +35,7 @@ export interface YogaBlogPostsComponent_NoRelations {
|
||||
header?: string;
|
||||
description?: string;
|
||||
posts: number[];
|
||||
button?: Button_NoRelations;
|
||||
}
|
||||
|
||||
export interface YogaBlogPostsComponent_AdminPanelLifeCycle {
|
||||
@ -39,4 +45,5 @@ export interface YogaBlogPostsComponent_AdminPanelLifeCycle {
|
||||
header?: string;
|
||||
description?: string;
|
||||
posts: AdminPanelRelationPropertyModification<YogaBlogPost_Plain>;
|
||||
button?: Button_Plain;
|
||||
}
|
||||
|
||||
62
yoga-cms/generated-strapi-interfaces/api/yoga-footer.ts
Normal file
62
yoga-cms/generated-strapi-interfaces/api/yoga-footer.ts
Normal file
@ -0,0 +1,62 @@
|
||||
// Interface automatically generated by schemas-to-ts
|
||||
|
||||
import { Link } from '../components/yoga-site/Link';
|
||||
import { Link_Plain } from '../components/yoga-site/Link';
|
||||
import { Link_NoRelations } from '../components/yoga-site/Link';
|
||||
|
||||
export interface YogaFooter {
|
||||
id: number;
|
||||
attributes: {
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; aboutUsHeader?: string;
|
||||
aboutUsContent?: string;
|
||||
quickLinksHeader?: string;
|
||||
contactInfoHeader?: string;
|
||||
links: Link[];
|
||||
contactUsPhoneNumber?: Link;
|
||||
contactUsEmail?: Link;
|
||||
contactUsLocation?: Link;
|
||||
copyRight?: string;
|
||||
name?: string;
|
||||
};
|
||||
}
|
||||
export interface YogaFooter_Plain {
|
||||
id: number;
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; aboutUsHeader?: string;
|
||||
aboutUsContent?: string;
|
||||
quickLinksHeader?: string;
|
||||
contactInfoHeader?: string;
|
||||
links: Link_Plain[];
|
||||
contactUsPhoneNumber?: Link_Plain;
|
||||
contactUsEmail?: Link_Plain;
|
||||
contactUsLocation?: Link_Plain;
|
||||
copyRight?: string;
|
||||
name?: string;
|
||||
}
|
||||
|
||||
export interface YogaFooter_NoRelations {
|
||||
id: number;
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; aboutUsHeader?: string;
|
||||
aboutUsContent?: string;
|
||||
quickLinksHeader?: string;
|
||||
contactInfoHeader?: string;
|
||||
links: Link_NoRelations[];
|
||||
contactUsPhoneNumber?: Link_NoRelations;
|
||||
contactUsEmail?: Link_NoRelations;
|
||||
contactUsLocation?: Link_NoRelations;
|
||||
copyRight?: string;
|
||||
name?: string;
|
||||
}
|
||||
|
||||
export interface YogaFooter_AdminPanelLifeCycle {
|
||||
id: number;
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; aboutUsHeader?: string;
|
||||
aboutUsContent?: string;
|
||||
quickLinksHeader?: string;
|
||||
contactInfoHeader?: string;
|
||||
links: Link_Plain[];
|
||||
contactUsPhoneNumber?: Link_Plain;
|
||||
contactUsEmail?: Link_Plain;
|
||||
contactUsLocation?: Link_Plain;
|
||||
copyRight?: string;
|
||||
name?: string;
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
// Interface automatically generated by schemas-to-ts
|
||||
|
||||
export interface YogaSubscribeNowComponent {
|
||||
id: number;
|
||||
attributes: {
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; title?: string;
|
||||
header?: string;
|
||||
placeHolderEmail?: string;
|
||||
buttonSubscribeLabel?: string;
|
||||
};
|
||||
}
|
||||
export interface YogaSubscribeNowComponent_Plain {
|
||||
id: number;
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; title?: string;
|
||||
header?: string;
|
||||
placeHolderEmail?: string;
|
||||
buttonSubscribeLabel?: string;
|
||||
}
|
||||
|
||||
export interface YogaSubscribeNowComponent_NoRelations {
|
||||
id: number;
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; title?: string;
|
||||
header?: string;
|
||||
placeHolderEmail?: string;
|
||||
buttonSubscribeLabel?: string;
|
||||
}
|
||||
|
||||
export interface YogaSubscribeNowComponent_AdminPanelLifeCycle {
|
||||
id: number;
|
||||
createdAt: Date; updatedAt: Date; publishedAt?: Date; title?: string;
|
||||
header?: string;
|
||||
placeHolderEmail?: string;
|
||||
buttonSubscribeLabel?: string;
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
// Interface automatically generated by schemas-to-ts
|
||||
|
||||
export interface Button {
|
||||
label?: string;
|
||||
link?: string;
|
||||
}
|
||||
export interface Button_Plain {
|
||||
label?: string;
|
||||
link?: string;
|
||||
}
|
||||
|
||||
export interface Button_NoRelations {
|
||||
label?: string;
|
||||
link?: string;
|
||||
}
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
// Interface automatically generated by schemas-to-ts
|
||||
|
||||
export interface Link {
|
||||
linkLabel?: string;
|
||||
linkHref?: string;
|
||||
}
|
||||
export interface Link_Plain {
|
||||
linkLabel?: string;
|
||||
linkHref?: string;
|
||||
}
|
||||
|
||||
export interface Link_NoRelations {
|
||||
linkLabel?: string;
|
||||
linkHref?: string;
|
||||
}
|
||||
|
||||
@ -60,6 +60,16 @@
|
||||
"type": "relation",
|
||||
"relation": "oneToOne",
|
||||
"target": "api::yoga-blog-posts-component.yoga-blog-posts-component"
|
||||
},
|
||||
"subscribeNow": {
|
||||
"type": "relation",
|
||||
"relation": "oneToOne",
|
||||
"target": "api::yoga-subscribe-now-component.yoga-subscribe-now-component"
|
||||
},
|
||||
"footer": {
|
||||
"type": "relation",
|
||||
"relation": "oneToOne",
|
||||
"target": "api::yoga-footer.yoga-footer"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,8 @@
|
||||
"info": {
|
||||
"singularName": "yoga-blog-posts-component",
|
||||
"pluralName": "yoga-blog-posts-components",
|
||||
"displayName": "YogaBlogPostsComponent"
|
||||
"displayName": "YogaBlogPostsComponent",
|
||||
"description": ""
|
||||
},
|
||||
"options": {
|
||||
"draftAndPublish": true
|
||||
@ -27,6 +28,11 @@
|
||||
"type": "relation",
|
||||
"relation": "oneToMany",
|
||||
"target": "api::yoga-blog-post.yoga-blog-post"
|
||||
},
|
||||
"button": {
|
||||
"type": "component",
|
||||
"repeatable": false,
|
||||
"component": "yoga-site.button"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,55 @@
|
||||
{
|
||||
"kind": "collectionType",
|
||||
"collectionName": "yoga_footers",
|
||||
"info": {
|
||||
"singularName": "yoga-footer",
|
||||
"pluralName": "yoga-footers",
|
||||
"displayName": "YogaFooter",
|
||||
"description": ""
|
||||
},
|
||||
"options": {
|
||||
"draftAndPublish": true
|
||||
},
|
||||
"pluginOptions": {},
|
||||
"attributes": {
|
||||
"aboutUsHeader": {
|
||||
"type": "string"
|
||||
},
|
||||
"aboutUsContent": {
|
||||
"type": "text"
|
||||
},
|
||||
"quickLinksHeader": {
|
||||
"type": "string"
|
||||
},
|
||||
"contactInfoHeader": {
|
||||
"type": "string"
|
||||
},
|
||||
"links": {
|
||||
"type": "component",
|
||||
"repeatable": true,
|
||||
"component": "yoga-site.link"
|
||||
},
|
||||
"contactUsPhoneNumber": {
|
||||
"type": "component",
|
||||
"repeatable": false,
|
||||
"component": "yoga-site.link",
|
||||
"required": false
|
||||
},
|
||||
"contactUsEmail": {
|
||||
"type": "component",
|
||||
"repeatable": false,
|
||||
"component": "yoga-site.link"
|
||||
},
|
||||
"contactUsLocation": {
|
||||
"type": "component",
|
||||
"repeatable": false,
|
||||
"component": "yoga-site.link"
|
||||
},
|
||||
"copyRight": {
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
7
yoga-cms/src/api/yoga-footer/controllers/yoga-footer.ts
Normal file
7
yoga-cms/src/api/yoga-footer/controllers/yoga-footer.ts
Normal file
@ -0,0 +1,7 @@
|
||||
/**
|
||||
* yoga-footer controller
|
||||
*/
|
||||
|
||||
import { factories } from '@strapi/strapi'
|
||||
|
||||
export default factories.createCoreController('api::yoga-footer.yoga-footer');
|
||||
7
yoga-cms/src/api/yoga-footer/routes/yoga-footer.ts
Normal file
7
yoga-cms/src/api/yoga-footer/routes/yoga-footer.ts
Normal file
@ -0,0 +1,7 @@
|
||||
/**
|
||||
* yoga-footer router
|
||||
*/
|
||||
|
||||
import { factories } from '@strapi/strapi';
|
||||
|
||||
export default factories.createCoreRouter('api::yoga-footer.yoga-footer');
|
||||
7
yoga-cms/src/api/yoga-footer/services/yoga-footer.ts
Normal file
7
yoga-cms/src/api/yoga-footer/services/yoga-footer.ts
Normal file
@ -0,0 +1,7 @@
|
||||
/**
|
||||
* yoga-footer service
|
||||
*/
|
||||
|
||||
import { factories } from '@strapi/strapi';
|
||||
|
||||
export default factories.createCoreService('api::yoga-footer.yoga-footer');
|
||||
@ -0,0 +1,27 @@
|
||||
{
|
||||
"kind": "collectionType",
|
||||
"collectionName": "yoga_subscribe_now_components",
|
||||
"info": {
|
||||
"singularName": "yoga-subscribe-now-component",
|
||||
"pluralName": "yoga-subscribe-now-components",
|
||||
"displayName": "YogaSubscribeNowComponent"
|
||||
},
|
||||
"options": {
|
||||
"draftAndPublish": true
|
||||
},
|
||||
"pluginOptions": {},
|
||||
"attributes": {
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"header": {
|
||||
"type": "string"
|
||||
},
|
||||
"placeHolderEmail": {
|
||||
"type": "string"
|
||||
},
|
||||
"buttonSubscribeLabel": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
/**
|
||||
* yoga-subscribe-now-component controller
|
||||
*/
|
||||
|
||||
import { factories } from '@strapi/strapi'
|
||||
|
||||
export default factories.createCoreController('api::yoga-subscribe-now-component.yoga-subscribe-now-component');
|
||||
@ -0,0 +1,7 @@
|
||||
/**
|
||||
* yoga-subscribe-now-component router
|
||||
*/
|
||||
|
||||
import { factories } from '@strapi/strapi';
|
||||
|
||||
export default factories.createCoreRouter('api::yoga-subscribe-now-component.yoga-subscribe-now-component');
|
||||
@ -0,0 +1,7 @@
|
||||
/**
|
||||
* yoga-subscribe-now-component service
|
||||
*/
|
||||
|
||||
import { factories } from '@strapi/strapi';
|
||||
|
||||
export default factories.createCoreService('api::yoga-subscribe-now-component.yoga-subscribe-now-component');
|
||||
15
yoga-cms/src/components/yoga-site/button.json
Normal file
15
yoga-cms/src/components/yoga-site/button.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"collectionName": "components_yoga_site_buttons",
|
||||
"info": {
|
||||
"displayName": "button"
|
||||
},
|
||||
"options": {},
|
||||
"attributes": {
|
||||
"label": {
|
||||
"type": "string"
|
||||
},
|
||||
"link": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
16
yoga-cms/src/components/yoga-site/link.json
Normal file
16
yoga-cms/src/components/yoga-site/link.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"collectionName": "components_yoga_site_links",
|
||||
"info": {
|
||||
"displayName": "link",
|
||||
"description": ""
|
||||
},
|
||||
"options": {},
|
||||
"attributes": {
|
||||
"linkLabel": {
|
||||
"type": "string"
|
||||
},
|
||||
"linkHref": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
25
yoga-cms/types/generated/components.d.ts
vendored
25
yoga-cms/types/generated/components.d.ts
vendored
@ -84,6 +84,17 @@ export interface SharedTitleDescription extends Struct.ComponentSchema {
|
||||
};
|
||||
}
|
||||
|
||||
export interface YogaSiteButton extends Struct.ComponentSchema {
|
||||
collectionName: 'components_yoga_site_buttons';
|
||||
info: {
|
||||
displayName: 'button';
|
||||
};
|
||||
attributes: {
|
||||
label: Schema.Attribute.String;
|
||||
link: Schema.Attribute.String;
|
||||
};
|
||||
}
|
||||
|
||||
export interface YogaSiteHeaderB extends Struct.ComponentSchema {
|
||||
collectionName: 'components_yoga_site_header_bs';
|
||||
info: {
|
||||
@ -97,6 +108,18 @@ export interface YogaSiteHeaderB extends Struct.ComponentSchema {
|
||||
};
|
||||
}
|
||||
|
||||
export interface YogaSiteLink extends Struct.ComponentSchema {
|
||||
collectionName: 'components_yoga_site_links';
|
||||
info: {
|
||||
description: '';
|
||||
displayName: 'link';
|
||||
};
|
||||
attributes: {
|
||||
linkHref: Schema.Attribute.String;
|
||||
linkLabel: Schema.Attribute.String;
|
||||
};
|
||||
}
|
||||
|
||||
export interface YogaSiteOurServicesComponent extends Struct.ComponentSchema {
|
||||
collectionName: 'components_yoga_site_our_services_components';
|
||||
info: {
|
||||
@ -130,7 +153,9 @@ declare module '@strapi/strapi' {
|
||||
'shared.seo': SharedSeo;
|
||||
'shared.slider': SharedSlider;
|
||||
'shared.title-description': SharedTitleDescription;
|
||||
'yoga-site.button': YogaSiteButton;
|
||||
'yoga-site.header-b': YogaSiteHeaderB;
|
||||
'yoga-site.link': YogaSiteLink;
|
||||
'yoga-site.our-services-component': YogaSiteOurServicesComponent;
|
||||
'yoga-site.tag': YogaSiteTag;
|
||||
}
|
||||
|
||||
82
yoga-cms/types/generated/contentTypes.d.ts
vendored
82
yoga-cms/types/generated/contentTypes.d.ts
vendored
@ -405,6 +405,10 @@ export interface ApiAboutAbout extends Struct.SingleTypeSchema {
|
||||
'oneToOne',
|
||||
'api::yoga-customer-feedback-component.yoga-customer-feedback-component'
|
||||
>;
|
||||
footer: Schema.Attribute.Relation<
|
||||
'oneToOne',
|
||||
'api::yoga-footer.yoga-footer'
|
||||
>;
|
||||
header: Schema.Attribute.Component<'yoga-site.header-b', false> &
|
||||
Schema.Attribute.SetPluginOptions<{
|
||||
i18n: {
|
||||
@ -426,6 +430,10 @@ export interface ApiAboutAbout extends Struct.SingleTypeSchema {
|
||||
'api::yoga-price-component.yoga-price-component'
|
||||
>;
|
||||
publishedAt: Schema.Attribute.DateTime;
|
||||
subscribeNow: Schema.Attribute.Relation<
|
||||
'oneToOne',
|
||||
'api::yoga-subscribe-now-component.yoga-subscribe-now-component'
|
||||
>;
|
||||
updatedAt: Schema.Attribute.DateTime;
|
||||
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||
Schema.Attribute.Private;
|
||||
@ -748,6 +756,7 @@ export interface ApiYogaBlogPostsComponentYogaBlogPostsComponent
|
||||
extends Struct.CollectionTypeSchema {
|
||||
collectionName: 'yoga_blog_posts_components';
|
||||
info: {
|
||||
description: '';
|
||||
displayName: 'YogaBlogPostsComponent';
|
||||
pluralName: 'yoga-blog-posts-components';
|
||||
singularName: 'yoga-blog-posts-component';
|
||||
@ -756,6 +765,7 @@ export interface ApiYogaBlogPostsComponentYogaBlogPostsComponent
|
||||
draftAndPublish: true;
|
||||
};
|
||||
attributes: {
|
||||
button: Schema.Attribute.Component<'yoga-site.button', false>;
|
||||
createdAt: Schema.Attribute.DateTime;
|
||||
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||
Schema.Attribute.Private;
|
||||
@ -928,6 +938,44 @@ export interface ApiYogaCustomerFeedbackYogaCustomerFeedback
|
||||
};
|
||||
}
|
||||
|
||||
export interface ApiYogaFooterYogaFooter extends Struct.CollectionTypeSchema {
|
||||
collectionName: 'yoga_footers';
|
||||
info: {
|
||||
description: '';
|
||||
displayName: 'YogaFooter';
|
||||
pluralName: 'yoga-footers';
|
||||
singularName: 'yoga-footer';
|
||||
};
|
||||
options: {
|
||||
draftAndPublish: true;
|
||||
};
|
||||
attributes: {
|
||||
aboutUsContent: Schema.Attribute.Text;
|
||||
aboutUsHeader: Schema.Attribute.String;
|
||||
contactInfoHeader: Schema.Attribute.String;
|
||||
contactUsEmail: Schema.Attribute.Component<'yoga-site.link', false>;
|
||||
contactUsLocation: Schema.Attribute.Component<'yoga-site.link', false>;
|
||||
contactUsPhoneNumber: Schema.Attribute.Component<'yoga-site.link', false>;
|
||||
copyRight: Schema.Attribute.String;
|
||||
createdAt: Schema.Attribute.DateTime;
|
||||
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||
Schema.Attribute.Private;
|
||||
links: Schema.Attribute.Component<'yoga-site.link', true>;
|
||||
locale: Schema.Attribute.String & Schema.Attribute.Private;
|
||||
localizations: Schema.Attribute.Relation<
|
||||
'oneToMany',
|
||||
'api::yoga-footer.yoga-footer'
|
||||
> &
|
||||
Schema.Attribute.Private;
|
||||
name: Schema.Attribute.String;
|
||||
publishedAt: Schema.Attribute.DateTime;
|
||||
quickLinksHeader: Schema.Attribute.String;
|
||||
updatedAt: Schema.Attribute.DateTime;
|
||||
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||
Schema.Attribute.Private;
|
||||
};
|
||||
}
|
||||
|
||||
export interface ApiYogaOurServicesComponentYogaOurServicesComponent
|
||||
extends Struct.CollectionTypeSchema {
|
||||
collectionName: 'yoga_our_services_components';
|
||||
@ -1288,6 +1336,38 @@ export interface ApiYogaSpecialitiesComponentYogaSpecialitiesComponent
|
||||
};
|
||||
}
|
||||
|
||||
export interface ApiYogaSubscribeNowComponentYogaSubscribeNowComponent
|
||||
extends Struct.CollectionTypeSchema {
|
||||
collectionName: 'yoga_subscribe_now_components';
|
||||
info: {
|
||||
displayName: 'YogaSubscribeNowComponent';
|
||||
pluralName: 'yoga-subscribe-now-components';
|
||||
singularName: 'yoga-subscribe-now-component';
|
||||
};
|
||||
options: {
|
||||
draftAndPublish: true;
|
||||
};
|
||||
attributes: {
|
||||
buttonSubscribeLabel: Schema.Attribute.String;
|
||||
createdAt: Schema.Attribute.DateTime;
|
||||
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||
Schema.Attribute.Private;
|
||||
header: Schema.Attribute.String;
|
||||
locale: Schema.Attribute.String & Schema.Attribute.Private;
|
||||
localizations: Schema.Attribute.Relation<
|
||||
'oneToMany',
|
||||
'api::yoga-subscribe-now-component.yoga-subscribe-now-component'
|
||||
> &
|
||||
Schema.Attribute.Private;
|
||||
placeHolderEmail: Schema.Attribute.String;
|
||||
publishedAt: Schema.Attribute.DateTime;
|
||||
title: Schema.Attribute.String;
|
||||
updatedAt: Schema.Attribute.DateTime;
|
||||
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||
Schema.Attribute.Private;
|
||||
};
|
||||
}
|
||||
|
||||
export interface ApiYogaTagYogaTag extends Struct.CollectionTypeSchema {
|
||||
collectionName: 'yoga_tags';
|
||||
info: {
|
||||
@ -1838,12 +1918,14 @@ declare module '@strapi/strapi' {
|
||||
'api::yoga-contact-us.yoga-contact-us': ApiYogaContactUsYogaContactUs;
|
||||
'api::yoga-customer-feedback-component.yoga-customer-feedback-component': ApiYogaCustomerFeedbackComponentYogaCustomerFeedbackComponent;
|
||||
'api::yoga-customer-feedback.yoga-customer-feedback': ApiYogaCustomerFeedbackYogaCustomerFeedback;
|
||||
'api::yoga-footer.yoga-footer': ApiYogaFooterYogaFooter;
|
||||
'api::yoga-our-services-component.yoga-our-services-component': ApiYogaOurServicesComponentYogaOurServicesComponent;
|
||||
'api::yoga-price-component.yoga-price-component': ApiYogaPriceComponentYogaPriceComponent;
|
||||
'api::yoga-price.yoga-price': ApiYogaPriceYogaPrice;
|
||||
'api::yoga-single-service.yoga-single-service': ApiYogaSingleServiceYogaSingleService;
|
||||
'api::yoga-single-speciality.yoga-single-speciality': ApiYogaSingleSpecialityYogaSingleSpeciality;
|
||||
'api::yoga-specialities-component.yoga-specialities-component': ApiYogaSpecialitiesComponentYogaSpecialitiesComponent;
|
||||
'api::yoga-subscribe-now-component.yoga-subscribe-now-component': ApiYogaSubscribeNowComponentYogaSubscribeNowComponent;
|
||||
'api::yoga-tag.yoga-tag': ApiYogaTagYogaTag;
|
||||
'plugin::content-releases.release': PluginContentReleasesRelease;
|
||||
'plugin::content-releases.release-action': PluginContentReleasesReleaseAction;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user