/* global React */
const { useState, useRef } = React;
/* ---------- Data ---------- */
const TIERS = [
{
id: "title", name: "Title Sponsor", amount: "$5,000",
badge: { kind: "flagship", label: "Flagship · 1 spot" },
summary: "Naming rights, a speaking slot & top billing across the entire campaign.",
benefits: [
"Naming rights: “Moore Miles presented by [Your Business]”",
"Speaking opportunity at the event",
"Largest logo placement among all sponsors on event shirts",
"Featured placement on Lewisburg-facing signage or car rider line banners",
"Premium pop-up tent location at the event",
"6 complimentary event shirts",
"Dedicated sponsor recognition across campaign materials",
"Dedicated customizeable social media and newsletter spotlight",
"Logo on printed and digital materials, including flyers, banners, and emails",
"Prominent logo on the physical campus sponsor banner",
"Digital Title Sponsor badge",
],
},
{
id: "platinum", name: "Platinum", amount: "$2,000",
badge: { kind: "limited", label: "Limited · 4 spots" },
summary: "Branded track sign, large shirt logo & year-round banner recognition.",
benefits: [
"Branded track sign with QR code",
"Large logo placement on event shirts",
"Large logo on the physical campus sponsor banner",
"4 complimentary event shirts",
"Recognition on year-round school sponsor banners along the fence",
"Featured sponsor signage opportunities",
"Featured newsletter sponsor spotlight",
"Social media and newsletter recognition",
"Digital Platinum Sponsor badge",
],
},
{
id: "gold", name: "Gold", amount: "$1,000",
badge: { kind: "limited", label: "Limited · 10 spots" },
summary: "Medium shirt logo, school “Thank You” banner & flyer placement.",
benefits: [
"Medium logo placement on event shirts",
"2 complimentary event shirts",
"Logo on the physical campus sponsor banner",
"Recognition on year-round school sponsor banners along the fence",
"Logo included on social media post",
"Recognition in event newsletter",
"Logo featured on digital and print event flyer",
"Digital Gold Sponsor badge",
],
},
{
id: "champion", name: "Community Champion", amount: "$600",
badge: { kind: "open", label: "Open" },
summary: "School banner recognition, a group social post & newsletter mention.",
benefits: [
"Small logo on the physical campus sponsor banner",
"Logo included in group Instagram post",
"Recognition in event newsletter",
"Digital Community Champion badge",
],
},
{
id: "builder", name: "Community Builder", amount: "$300",
badge: { kind: "open", label: "Open" },
summary: "Your name on the school “Thank You” banner & sponsor list.",
benefits: [
"Business/personal name on the physical campus sponsor banner",
"Recognition on year-round school sponsor banners along the fence",
"Recognition in social media post",
"Digital Community Builder badge",
],
},
];
const HEADLINE_EM = {
"Sponsor our school year.": "school year",
"Fuel a year at Moore.": "a year",
"Partner with Moore Elementary.": "Moore Elementary",
};
/* Paste your online donation page URL here when it's ready. Leave "" for now. */
const ONLINE_DONATION_URL = "";
const SPONSOR_SUBMIT_ENDPOINT = "/api/submit-sponsor.php";
const LOGO_UPLOAD_ENDPOINT = "/api/upload-logo.php";
async function uploadLogoToServer(file) {
const formData = new FormData();
formData.append("logo", file);
const response = await fetch(LOGO_UPLOAD_ENDPOINT, {
method: "POST",
body: formData,
});
const result = await response.json();
if (!response.ok || !result.success) {
throw new Error(result.error || "Logo upload failed.");
}
return result;
}
async function submitSponsorToNotion(payload) {
const response = await fetch(SPONSOR_SUBMIT_ENDPOINT, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
const result = await response.json();
if (!response.ok || !result.success) {
throw new Error(result.error || "Sponsor submission failed.");
}
return result;
}
function Headline({ text }) {
const em = HEADLINE_EM[text];
if (!em || !text.includes(em)) return <>{text}>;
const [before, after] = text.split(em);
return <>{before}{em}{after}>;
}
/* ---------- Sub-components ---------- */
function TierCard({ tier, selected, onSelect }) {
const [open, setOpen] = useState(false);
return (
You don't have to own a business to make a difference. Download our sponsorship deck and share it with a local business owner — a favorite restaurant, your family's dentist, the shop down the street. One quick introduction can help fund a whole year for Moore students.
Partner with the Moore Elementary PTO to fund a full year of classroom support, student experiences, and community events — culminating in Moore Miles, our signature Fun Run. Choose a tier below; every sponsorship reaches an entire school of families.
500+ students reached
Year-long recognition
Tax-deductible
)}
{confirmed ? (
) : (
<>
{error &&
{error}
}
Every sponsorship supports the PTO's work throughout the 2026–2027 school year and is celebrated at Moore Miles, our culminating event. Higher tiers have limited availability.
Sponsors at the Gold tier and above are featured by logo on Moore Miles t-shirts and the year-long thank-you banner. Send a vector file or transparent PNG so we can print it crisply.
Choose how you'd like to complete your tax-deductible contribution. We'll show the matching details on the confirmation page.
We've received your sponsorship details and the PTO will reach out shortly to confirm everything and collect your logo. Your support powers a full year of programs for Moore families — and we can't wait to celebrate you at Moore Miles this spring.
{tier && (
{tier.name} · {tier.amount}
)}
{method === "check" ? (
<>
One last step
Drop your check at the school
Make your check payable to Moore Elementary School and drop it at the front office, or mail it to the address below. Your tax-deductible donation completes your sponsorship.
Moore Elementary School 1061 Lewisburg Pike Franklin, TN 37064
>
) : (
<>
One last step
Complete your donation
Finish your sponsorship with your tax-deductible gift through our secure online donation page.