Merge version_2_1781443790682 into main #1
@@ -5,15 +5,15 @@
|
||||
|
||||
:root {
|
||||
/* @colorThemes/darkTheme/warmStoneOrange */
|
||||
--background: #1c1917;
|
||||
--card: #292524;
|
||||
--foreground: #fafaf9;
|
||||
--primary-cta: #ea6720;
|
||||
--background: #ffffff;
|
||||
--card: #f9fafb;
|
||||
--foreground: #1f2937;
|
||||
--primary-cta: #16a34a;
|
||||
--primary-cta-text: #ffffff;
|
||||
--secondary-cta: #44403c;
|
||||
--secondary-cta-text: #fafaf9;
|
||||
--accent: #f97316;
|
||||
--background-accent: #fb923c;
|
||||
--secondary-cta: #15803d;
|
||||
--secondary-cta-text: #ffffff;
|
||||
--accent: #16a34a;
|
||||
--background-accent: #f9fafb;
|
||||
|
||||
/* @layout/border-radius/soft */
|
||||
--radius: 1.5rem;
|
||||
|
||||
@@ -1,126 +1,40 @@
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
|
||||
// files directly. Non-block content (wrappers, non-inlinable sections) is
|
||||
// preserved inline; extracted section blocks become <XSection/> refs.
|
||||
|
||||
import { StyleProvider } from "@/components/ui/StyleProvider";
|
||||
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
|
||||
import HeroBillboard from "@/components/sections/hero/HeroBillboard";
|
||||
import AboutFeaturesSplit from "@/components/sections/about/AboutFeaturesSplit";
|
||||
import FeaturesRevealCards from "@/components/sections/features/FeaturesRevealCards";
|
||||
import MetricsMediaCards from "@/components/sections/metrics/MetricsMediaCards";
|
||||
import FeaturesDetailedCards from "@/components/sections/features/FeaturesDetailedCards";
|
||||
import TestimonialOverlayCards from "@/components/sections/testimonial/TestimonialOverlayCards";
|
||||
import FaqTwoColumn from "@/components/sections/faq/FaqTwoColumn";
|
||||
import ContactSplitForm from "@/components/sections/contact/ContactSplitForm";
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import ServicesSection from './HomePage/sections/Services';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
import ProcessSection from './HomePage/sections/Process';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage() {
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<StyleProvider heroBackground="none" siteBackground="none" buttonVariant="elastic">
|
||||
<StyleProvider heroBackground="none" siteBackground="none" buttonVariant="elastic">
|
||||
<SiteBackgroundSlot />
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBillboard
|
||||
avatarsSrc={[
|
||||
"http://img.b2bpic.net/free-photo/medium-shot-smiley-woman-work_23-2149304143.jpg", "http://img.b2bpic.net/free-photo/stylish-woman-wearing-yellow-bandana_273609-13320.jpg", "http://img.b2bpic.net/free-photo/woman-with-big-smile-her-face-after-big-shopping_329181-18748.jpg"]}
|
||||
avatarsLabel="500+ Happy Customers"
|
||||
title="Your No.1 Local Roof Specialist — 40 Years of Excellence"
|
||||
description="Family-run roofing specialist serving Northamptonshire, Leicestershire & surrounding areas. Expert care for your property."
|
||||
primaryButton={{ text: "Get a Free Quote", href: "#contact" }}
|
||||
secondaryButton={{ text: "View Our Work", href: "#services" }}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/modern-country-houses-construction_1385-17.jpg"
|
||||
/>
|
||||
</div>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<AboutFeaturesSplit
|
||||
tag="Expertise"
|
||||
title="Family-Run Roofing Excellence"
|
||||
description="With over 40 years of experience, Sean Feeley Roofing provides reliable, high-quality roofing solutions for residential and commercial clients across Corby and beyond."
|
||||
items={[
|
||||
{ icon: "ShieldCheck", title: "20-Year Guarantee", description: "Peace of mind on all our workmanship and materials." },
|
||||
{ icon: "Users", title: "Family Run", description: "Professional, friendly, and personal service every time." },
|
||||
{ icon: "Trophy", title: "40+ Years Experience", description: "Time-tested quality that stands up to the British weather." },
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/medium-shot-man-working-with-helmet_23-2149343651.jpg"
|
||||
/>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="services" data-section="services">
|
||||
<FeaturesRevealCards
|
||||
tag="Our Services"
|
||||
title="Comprehensive Roofing Solutions"
|
||||
description="Whether it's a flat roof repair or a complete re-roofing project, we deliver quality you can trust."
|
||||
items={[
|
||||
{ title: "Flat & Felt Roofing", description: "Durable solutions for flat roof extensions and garages.", imageSrc: "http://img.b2bpic.net/free-photo/low-angle-view-skyscrapers_1359-26.jpg" },
|
||||
{ title: "Pitched & Tiled Roofs", description: "Traditional slate and tile work for character and protection.", imageSrc: "http://img.b2bpic.net/free-photo/traditional-ceramic-roof-tiles-government-building-dijon-burgundy-france_1101-2625.jpg" },
|
||||
{ title: "UPVC Fascias & Guttering", description: "Prevent water damage with our high-quality drainage systems.", imageSrc: "http://img.b2bpic.net/free-photo/stretching_23-2148023765.jpg" },
|
||||
{ title: "Emergency Repairs", description: "Rapid response for storm damage and urgent leaks.", imageSrc: "http://img.b2bpic.net/free-photo/man-working-outdoors-full-shot_23-2149714278.jpg" },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<ServicesSection />
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<MetricsMediaCards
|
||||
tag="Our Results"
|
||||
title="Industry-Leading Standards"
|
||||
description="Professional, punctual, and competitively priced roofing services you can rely on."
|
||||
metrics={[
|
||||
{ value: "40+", title: "Years Experience", description: "Decades of roofing mastery in Northamptonshire.", imageSrc: "http://img.b2bpic.net/free-photo/decorative-vinyls-arrangement-top-view_23-2149728636.jpg" },
|
||||
{ value: "500+", title: "Projects Completed", description: "Consistent delivery on every single site.", imageSrc: "http://img.b2bpic.net/free-photo/construction-workers-review-blueprints-building-site_23-2152021007.jpg" },
|
||||
{ value: "100%", title: "5-Star Reviews", description: "Delivering excellence that wins customer trust.", imageSrc: "http://img.b2bpic.net/free-photo/low-angle-business-hand-shake_23-2148480352.jpg" },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<MetricsSection />
|
||||
|
||||
<div id="process" data-section="process">
|
||||
<FeaturesDetailedCards
|
||||
tag="Case Studies"
|
||||
title="Featured Projects"
|
||||
description="See how we have helped homeowners in Corby and surrounding areas."
|
||||
items={[
|
||||
{ title: "Extension Roof, Corby", description: "Single Ply, 40m², IKO Armourplan, 20yr guarantee.", tags: ["Flat Roof", "Commercial/Domestic"], imageSrc: "http://img.b2bpic.net/free-photo/full-shot-man-with-helmet-sitting-roof_23-2149343713.jpg" },
|
||||
{ title: "Garage Roof, Corby", description: "Felt, 30m², Swisspoor, 20yr guarantee.", tags: ["Felt", "Residential"], imageSrc: "http://img.b2bpic.net/free-photo/detail-urban-stairs_23-2148107136.jpg" },
|
||||
{ title: "Sloped Extension, Corby", description: "Single Ply, 32m², IKO Armourplan, 20yr guarantee.", tags: ["Single Ply", "Extension"], imageSrc: "http://img.b2bpic.net/free-photo/high-angle-beautiful-wooden-house-with-new-roof_23-2149343703.jpg" },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<ProcessSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialOverlayCards
|
||||
tag="Reviews"
|
||||
title="What Our Customers Say"
|
||||
description="Our reputation is built on long-lasting relationships and high-quality results."
|
||||
testimonials={[
|
||||
{ name: "Paula (NN11)", role: "Homeowner", company: "Corby", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/home-comfort-coziness-domesticity-concept-cropped-portrait-confident-happy-young-woman-spending-day-home_343059-3893.jpg" },
|
||||
{ name: "Vicki", role: "Homeowner", company: "Northampton", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/positive-satisfied-customer-making-ok-gesture_74855-3646.jpg" },
|
||||
{ name: "Carla", role: "Homeowner", company: "Leicester", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/horizontal-portrait-beautiful-positive-young-european-female-blue-shirt-dress-relaxing-home-looking-front-with-easy-carefree-smile_343059-3894.jpg" },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqTwoColumn
|
||||
tag="Support"
|
||||
title="Frequently Asked Questions"
|
||||
description="Everything you need to know about your roofing requirements."
|
||||
items={[
|
||||
{ question: "Do you cover my area?", answer: "We serve Corby, Kettering, Wellingborough, Oundle, Thrapston, Northampton, Market Harborough, and surrounding areas." },
|
||||
{ question: "How do I book a quote?", answer: "Call us on 07725 483439 or fill out the request form on this page." },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactSplitForm
|
||||
tag="Contact"
|
||||
title="Get Your Free Quote"
|
||||
description="Speak to Sean Feeley Roofing today. We are here to help with your next project."
|
||||
inputs={[
|
||||
{ name: "name", type: "text", placeholder: "Full Name", required: true },
|
||||
{ name: "phone", type: "tel", placeholder: "07725 483439", required: true },
|
||||
{ name: "postcode", type: "text", placeholder: "Postcode", required: true },
|
||||
]}
|
||||
textarea={{ name: "message", placeholder: "Tell us about your roofing needs...", rows: 4, required: true }}
|
||||
buttonText="Submit Request"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/photo-wood-texture-pattern_58702-13101.jpg"
|
||||
/>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</StyleProvider>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
23
src/pages/HomePage/sections/About.tsx
Normal file
23
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "about" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutFeaturesSplit from "@/components/sections/about/AboutFeaturesSplit";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<AboutFeaturesSplit
|
||||
tag="Expertise"
|
||||
title="Family-Run Roofing Excellence"
|
||||
description="With over 40 years of experience, Sean Feeley Roofing provides reliable, high-quality roofing solutions for residential and commercial clients across Corby and beyond."
|
||||
items={[
|
||||
{ icon: "ShieldCheck", title: "20-Year Guarantee", description: "Peace of mind on all our workmanship and materials." },
|
||||
{ icon: "Users", title: "Family Run", description: "Professional, friendly, and personal service every time." },
|
||||
{ icon: "Trophy", title: "40+ Years Experience", description: "Time-tested quality that stands up to the British weather." },
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/medium-shot-man-working-with-helmet_23-2149343651.jpg"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Contact.tsx
Normal file
25
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "contact" section.
|
||||
|
||||
import React from 'react';
|
||||
import ContactSplitForm from "@/components/sections/contact/ContactSplitForm";
|
||||
|
||||
export default function ContactSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactSplitForm
|
||||
tag="Contact"
|
||||
title="Get Your Free Quote"
|
||||
description="Speak to Sean Feeley Roofing today. We are here to help with your next project."
|
||||
inputs={[
|
||||
{ name: "name", type: "text", placeholder: "Full Name", required: true },
|
||||
{ name: "phone", type: "tel", placeholder: "07725 483439", required: true },
|
||||
{ name: "postcode", type: "text", placeholder: "Postcode", required: true },
|
||||
]}
|
||||
textarea={{ name: "message", placeholder: "Tell us about your roofing needs...", rows: 4, required: true }}
|
||||
buttonText="Submit Request"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/photo-wood-texture-pattern_58702-13101.jpg"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Faq.tsx
Normal file
21
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "faq" section.
|
||||
|
||||
import React from 'react';
|
||||
import FaqTwoColumn from "@/components/sections/faq/FaqTwoColumn";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqTwoColumn
|
||||
tag="Support"
|
||||
title="Frequently Asked Questions"
|
||||
description="Everything you need to know about your roofing requirements."
|
||||
items={[
|
||||
{ question: "Do you cover my area?", answer: "We serve Corby, Kettering, Wellingborough, Oundle, Thrapston, Northampton, Market Harborough, and surrounding areas." },
|
||||
{ question: "How do I book a quote?", answer: "Call us on 07725 483439 or fill out the request form on this page." },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/Hero.tsx
Normal file
22
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroBillboard from "@/components/sections/hero/HeroBillboard";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBillboard
|
||||
avatarsSrc={[
|
||||
"http://img.b2bpic.net/free-photo/medium-shot-smiley-woman-work_23-2149304143.jpg", "http://img.b2bpic.net/free-photo/stylish-woman-wearing-yellow-bandana_273609-13320.jpg", "http://img.b2bpic.net/free-photo/woman-with-big-smile-her-face-after-big-shopping_329181-18748.jpg"]}
|
||||
avatarsLabel="500+ Happy Customers"
|
||||
title="Your No.1 Local Roof Specialist — 40 Years of Excellence"
|
||||
description="Family-run roofing specialist serving Northamptonshire, Leicestershire & surrounding areas. Expert care for your property."
|
||||
primaryButton={{ text: "Get a Free Quote", href: "#contact" }}
|
||||
secondaryButton={{ text: "View Our Work", href: "#services" }}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/modern-country-houses-construction_1385-17.jpg"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/Metrics.tsx
Normal file
22
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "metrics" section.
|
||||
|
||||
import React from 'react';
|
||||
import MetricsMediaCards from "@/components/sections/metrics/MetricsMediaCards";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<MetricsMediaCards
|
||||
tag="Our Results"
|
||||
title="Industry-Leading Standards"
|
||||
description="Professional, punctual, and competitively priced roofing services you can rely on."
|
||||
metrics={[
|
||||
{ value: "40+", title: "Years Experience", description: "Decades of roofing mastery in Northamptonshire.", imageSrc: "http://img.b2bpic.net/free-photo/decorative-vinyls-arrangement-top-view_23-2149728636.jpg" },
|
||||
{ value: "500+", title: "Projects Completed", description: "Consistent delivery on every single site.", imageSrc: "http://img.b2bpic.net/free-photo/construction-workers-review-blueprints-building-site_23-2152021007.jpg" },
|
||||
{ value: "100%", title: "5-Star Reviews", description: "Delivering excellence that wins customer trust.", imageSrc: "http://img.b2bpic.net/free-photo/low-angle-business-hand-shake_23-2148480352.jpg" },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/Process.tsx
Normal file
22
src/pages/HomePage/sections/Process.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "process" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesDetailedCards from "@/components/sections/features/FeaturesDetailedCards";
|
||||
|
||||
export default function ProcessSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="process" data-section="process">
|
||||
<FeaturesDetailedCards
|
||||
tag="Case Studies"
|
||||
title="Featured Projects"
|
||||
description="See how we have helped homeowners in Corby and surrounding areas."
|
||||
items={[
|
||||
{ title: "Extension Roof, Corby", description: "Single Ply, 40m², IKO Armourplan, 20yr guarantee.", tags: ["Flat Roof", "Commercial/Domestic"], imageSrc: "http://img.b2bpic.net/free-photo/full-shot-man-with-helmet-sitting-roof_23-2149343713.jpg" },
|
||||
{ title: "Garage Roof, Corby", description: "Felt, 30m², Swisspoor, 20yr guarantee.", tags: ["Felt", "Residential"], imageSrc: "http://img.b2bpic.net/free-photo/detail-urban-stairs_23-2148107136.jpg" },
|
||||
{ title: "Sloped Extension, Corby", description: "Single Ply, 32m², IKO Armourplan, 20yr guarantee.", tags: ["Single Ply", "Extension"], imageSrc: "http://img.b2bpic.net/free-photo/high-angle-beautiful-wooden-house-with-new-roof_23-2149343703.jpg" },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
23
src/pages/HomePage/sections/Services.tsx
Normal file
23
src/pages/HomePage/sections/Services.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "services" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCards from "@/components/sections/features/FeaturesRevealCards";
|
||||
|
||||
export default function ServicesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="services" data-section="services">
|
||||
<FeaturesRevealCards
|
||||
tag="Our Services"
|
||||
title="Comprehensive Roofing Solutions"
|
||||
description="Whether it's a flat roof repair or a complete re-roofing project, we deliver quality you can trust."
|
||||
items={[
|
||||
{ title: "Flat & Felt Roofing", description: "Durable solutions for flat roof extensions and garages.", imageSrc: "http://img.b2bpic.net/free-photo/low-angle-view-skyscrapers_1359-26.jpg" },
|
||||
{ title: "Pitched & Tiled Roofs", description: "Traditional slate and tile work for character and protection.", imageSrc: "http://img.b2bpic.net/free-photo/traditional-ceramic-roof-tiles-government-building-dijon-burgundy-france_1101-2625.jpg" },
|
||||
{ title: "UPVC Fascias & Guttering", description: "Prevent water damage with our high-quality drainage systems.", imageSrc: "http://img.b2bpic.net/free-photo/stretching_23-2148023765.jpg" },
|
||||
{ title: "Emergency Repairs", description: "Rapid response for storm damage and urgent leaks.", imageSrc: "http://img.b2bpic.net/free-photo/man-working-outdoors-full-shot_23-2149714278.jpg" },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/Testimonials.tsx
Normal file
22
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "testimonials" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialOverlayCards from "@/components/sections/testimonial/TestimonialOverlayCards";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialOverlayCards
|
||||
tag="Reviews"
|
||||
title="What Our Customers Say"
|
||||
description="Our reputation is built on long-lasting relationships and high-quality results."
|
||||
testimonials={[
|
||||
{ name: "Paula (NN11)", role: "Homeowner", company: "Corby", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/home-comfort-coziness-domesticity-concept-cropped-portrait-confident-happy-young-woman-spending-day-home_343059-3893.jpg" },
|
||||
{ name: "Vicki", role: "Homeowner", company: "Northampton", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/positive-satisfied-customer-making-ok-gesture_74855-3646.jpg" },
|
||||
{ name: "Carla", role: "Homeowner", company: "Leicester", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/horizontal-portrait-beautiful-positive-young-european-female-blue-shirt-dress-relaxing-home-looking-front-with-easy-carefree-smile_343059-3894.jpg" },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user