/* Sam's article — How to Refinish a Thrifted Chair
 * Renders into #render-target. Source content: scripts/insert-sam-chair-post.ts.
 * Format: Sam editorial (patchhole.jsx) — Hero, Lede, WhatYouNeed, Steps, HotTakes, Redo, Comments, Signoff.
 */

const { useState } = React;

const SamSays = ({ children }) => (
  <div className="sa-step-says">
    <span className="who">— Sam</span>
    <p>{children}</p>
  </div>
);

/* ============ CRUMBS ============ */
const Crumbs = () => (
  <nav className="sa-crumbs" aria-label="Breadcrumb">
    <div className="l">
      <a href="/">Home</a>
      <span>/</span>
      <a href="/en/contributors/sam/">Sam</a>
      <span>/</span>
      <span>How-to</span>
      <span>/</span>
      <span style={{ color: "#EFE5CF" }}>Refinish a thrifted chair</span>
    </div>
    <div className="r">
      <span>Issue 04 · Spring '26</span>
      <span className="by">written by Sam ✦</span>
    </div>
  </nav>
);

/* ============ HERO ============ */
const Hero = () => (
  <section className="sa-hero">
    <div
      className="img"
      style={{
        backgroundImage: "url('../thrifted-chair.png')",
      }}
    />
    <div className="sa-hero-wrap">
      <div>
        <div className="sa-hero-kicker">
          <span>How-to</span>
          <span className="dot">●</span>
          <span>No. 01</span>
          <span className="dot">●</span>
          <span className="sig">written by Sam</span>
        </div>
        <h1>
          How to refinish a <em>thrifted chair</em> (and make it look like you paid full price)
        </h1>
        <p className="standfirst">
          $12 chair. Afternoon project. Nobody needs to know where it came from. Six honest steps from thrift-store to entryway, with all the mistakes I've already made on your behalf.
        </p>
      </div>
      <div className="sa-hero-side">
        <div className="row">
          <span>Time</span>
          <span className="v">3–4 hrs <span style={{opacity:0.5}}>+ 24 hr cure</span></span>
        </div>
        <div className="row">
          <span>Cost</span>
          <span className="v">$20–$35</span>
        </div>
        <div className="row">
          <span>Skill</span>
          <span className="v">Easy</span>
        </div>
        <div className="row">
          <span>Mess factor</span>
          <span className="v warn">●○○ Light</span>
        </div>
        <div className="row">
          <span>Updated</span>
          <span className="v">Spring '26</span>
        </div>
      </div>
    </div>
    <div className="sa-hero-scribble">
      $12. solid wood. <u>seriously</u>.
      <svg viewBox="0 0 60 30" fill="none">
        <path d="M2 22 C 12 8, 28 4, 56 12" stroke="currentColor" strokeWidth="2" strokeLinecap="round" />
        <path d="M48 6 L 56 12 L 50 20" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" fill="none" />
      </svg>
    </div>
  </section>
);

/* ============ LEDE ============ */
const Lede = () => (
  <section className="sa-lede">
    <div className="sa-lede-wrap">
      <aside className="sa-lede-side">
        <div className="marker">In this one</div>
        <ul>
          <li>The thrift-store math</li>
          <li>What you actually need</li>
          <li>The 6 steps</li>
          <li>Hot takes</li>
          <li>What I'd do differently</li>
        </ul>
      </aside>

      <div className="sa-lede-body">
        <p className="dropcap">
          I found this chair at the Goodwill on a Tuesday. Twelve dollars. Solid teak — the actual heavy kind, not the IKEA-veneer-pretending kind. Tight joints. Surprisingly comfortable. And a finish so aggressively orange-shellac-1972 that I almost put it back.
        </p>

        <p>
          I didn't put it back. I took it home. I refinished it in an afternoon for about thirty bucks in materials. It now lives by my front door, holds a planter on its seat, and twice in the last month somebody has asked me where I bought it.
        </p>

        <div className="sa-pullquote">
          <p>
            Solid wood at every price point under a thousand dollars is dead. The chair you find at the thrift store from 1972 is more likely to have real joinery than the chair you'd buy new on the same budget.
          </p>
        </div>

        <p>
          That's the whole pitch for thrift-store furniture. The bones are good. The skin is wrong. Refinishing — not stripping, not refurbishing, not "restoring to original condition" — is the entire move. You leave the chair, you change its outfit, you move on with your life.
        </p>

        <p>
          What follows is a complete six-step project in <strong>three to four hours of actual work</strong>, plus a 24-hour cure window before you sit on it. The hero of this article is a single product called <em>Rust-Oleum Chalked Paint</em> and I will be evangelizing for it.
        </p>
      </div>

      <aside className="sa-margin">
        <span className="lab">Sam's note</span>
        <h4>Before you buy a thrifted chair</h4>
        <p>
          Sit on it in the store. If it wobbles, walk away. Wobbly joints are a separate, bigger project. We're refinishing today, not regluing.
        </p>
      </aside>
    </div>
  </section>
);

/* ============ WHAT YOU NEED ============ */
const WhatYouNeed = () => (
  <section className="sa-need">
    <div className="sa-need-wrap">
      <div>
        <div className="sa-need-head">§ 01 / Materials</div>
        <h2>
          What you <em>actually</em> need
        </h2>
        <p className="body">
          Total budget: <strong>$20–$35</strong> in materials, assuming you don't already own anything. The hero is one quart of chalked paint. Everything else is small.
        </p>

        <div className="sa-need-dont">
          <span className="lab">Don't bother with</span>
          <ul>
            <li>
              "Furniture refinishing kit" upsells
              <span className="why">It's chalked paint and sandpaper. The kit is paying for the box.</span>
            </li>
            <li>
              Bristle brushes
              <span className="why">They leave brush marks. Foam doesn't. Buy foam.</span>
            </li>
            <li>
              Stripping the original finish
              <span className="why">Chalked paint covers it. Stripping is a different, longer article.</span>
            </li>
          </ul>
        </div>
      </div>

      <ul className="sa-need-list">
        <li>
          <span className="item">
            Rust-Oleum Chalked Paint, 1 quart
            <span className="why">Color is up to you. Sage, charcoal, cream, terracotta, soft black.</span>
          </span>
          <span className="qty">×1</span>
        </li>
        <li>
          <span className="item">
            Sandpaper, 120 grit
            <span className="why">For prep. Scuffs the existing finish.</span>
          </span>
          <span className="qty">×1 sheet</span>
        </li>
        <li>
          <span className="item">
            Sandpaper, 220 grit
            <span className="why">Between coats. Knocks down brush marks.</span>
          </span>
          <span className="qty">×1 sheet</span>
        </li>
        <li>
          <span className="item">
            Foam brush
            <span className="why">For spindles, carved details, edges.</span>
          </span>
          <span className="qty">×1</span>
        </li>
        <li>
          <span className="item">
            Small foam roller
            <span className="why">For flat surfaces. Faster, smoother. Worth the extra $4.</span>
          </span>
          <span className="qty">×1</span>
        </li>
        <li>
          <span className="item">
            Clear topcoat (matte polycrylic OR clear wax)
            <span className="why">Polycrylic is more durable; wax has more depth. Polycrylic for daily-use chairs.</span>
          </span>
          <span className="qty">×½ pint</span>
        </li>
        <li>
          <span className="item">
            Drop cloth (canvas, not plastic)
            <span className="why">Canvas stays put. Plastic slides when you move the chair.</span>
          </span>
          <span className="qty">×1</span>
        </li>
        <li>
          <span className="item">
            Lint-free wiping cloth
            <span className="why">For dust between coats.</span>
          </span>
          <span className="qty">×1</span>
        </li>
      </ul>
    </div>
  </section>
);

/* ============ STEPS ============ */
const STEPS = [
  {
    n: "01",
    phase: "Prep · 5 min",
    title: "Clean the chair first.",
    flip: false,
    body: (
      <>
        <p>
          Wipe it down with a damp cloth and let it dry completely. Any grease, dust, or thrift-store mystery residue will mess with how the paint sticks.
        </p>
        <p>
          This step takes five minutes and people always skip it. <em>Don't skip it.</em> The chair has been sitting in someone's basement, then a warehouse, then a thrift store sales floor, then your trunk. Whatever's on it, you don't want it sealed under your paint.
        </p>
      </>
    ),
    tip: { lab: "Lazy Sam tip:", text: "If you can see your reflection in the existing finish, hit it with a quick wipe of degreaser before water. Old kitchen chairs especially — they've absorbed forty years of fingerprints." },
    fig: {
      img: "https://images.unsplash.com/photo-1581092580497-e0d23cbdf1dc?w=1200&q=80",
      tag: "Fig 01 · The wipe-down",
      cap: "five minutes nobody wants to spend.",
    },
    says: "I do this with the chair upside-down on a drop cloth. Lets you see every surface and catches the under-rail dust people forget about.",
  },
  {
    n: "02",
    phase: "Sand · 15 min",
    title: "Sand lightly with 120 grit.",
    flip: true,
    body: (
      <>
        <p>
          You're <em>not</em> stripping the whole finish — just scuffing it up so the paint has something to grab onto. Hit all the flat surfaces and go with the grain on wood. Wipe off the dust with a damp lint-free cloth when you're done.
        </p>
        <p>
          The whole sand should take maybe fifteen minutes. The goal is to take the chair from glossy and slick to slightly hazy. <strong>If it still feels like glass after sanding, sand more.</strong>
        </p>
      </>
    ),
    tip: { lab: "Don't bother sanding into the spindles", text: "The carved details get covered by the paint anyway. Just hit the flats: seat top, leg fronts, arm tops. The places paint will visually land." },
    fig: {
      img: "https://images.unsplash.com/photo-1565793298595-6a879b1d9492?w=1200&q=80",
      tag: "Fig 02 · The scuff",
      cap: "shiny → hazy. that's it.",
    },
  },
  {
    n: "03",
    phase: "Paint · 30 min + dry",
    title: "First coat — thin, ugly, fine.",
    flip: false,
    body: (
      <>
        <p>
          <em>Don't glob it on.</em> Thin, even strokes. It's going to look terrible after the first coat and that's completely normal — chalked paint always does this. Streaky. Patchy. You'll see the original finish through it. <strong>This is correct.</strong>
        </p>
        <p>
          Let it dry. Chalked paint dries in about thirty minutes, but I usually wait a full hour just to be safe. <em>Resist the urge to fix uneven spots while it's wet.</em> You'll fix them on coat two.
        </p>
      </>
    ),
    warn: { lab: "Heads up", text: "If the paint feels thick coming out of the can, give it a stir — don't add water. Chalked paint is meant to be applied at can consistency. Watering it down kills the coverage." },
    fig: {
      img: "https://images.unsplash.com/photo-1562259949-e8e7689d7828?w=1200&q=80",
      tag: "Fig 03 · Coat 1",
      cap: "ugly is fine. honest is required.",
    },
    says: "Foam roller for the seat and flat panels. Foam brush for the spindles, the underside of the arms, and the carved bits.",
  },
  {
    n: "04",
    phase: "Sand · 5 min",
    title: "Lightly sand again with 220 grit.",
    flip: true,
    body: (
      <>
        <p>
          This is what makes the finish smooth instead of textured. Just a quick pass — you're knocking down any brush marks, not removing the paint. Wipe off the dust with the lint-free cloth.
        </p>
        <p>
          Two-twenty grit is fine enough that you cannot mess this up unless you press hard with a power sander. <em>By hand, you'll be fine.</em>
        </p>
      </>
    ),
    fig: {
      img: "https://images.unsplash.com/photo-1581092580497-e0d23cbdf1dc?w=1200&q=80",
      tag: "Fig 04 · The smooth-out",
      cap: "five minutes. the finish-quality step.",
    },
  },
  {
    n: "05",
    phase: "Paint · 30 min + dry",
    title: "Second coat — this is where it starts working.",
    flip: false,
    body: (
      <>
        <p>
          Same thin, even strokes. Most chairs only need two coats. <em>If there are any spots still showing through after the second coat dries, do a third.</em> No shame in a third coat. Better than a thick second one that drips.
        </p>
        <p>
          Let it dry an hour minimum before sealing. The chair should now look <strong>finished</strong>, not paint-covered. If it still looks like a painted chair, you need another coat.
        </p>
      </>
    ),
    fig: {
      img: "https://images.unsplash.com/photo-1503602642458-232111445657?w=1200&q=80",
      tag: "Fig 05 · Coat 2",
      cap: "now it's a chair, not a project.",
    },
    says: "Step back six feet between coats. The thing reads totally different from across the room than it does up close. The room view is the one that matters.",
  },
  {
    n: "06",
    phase: "Seal · 15 min + 24 hr cure",
    title: "Seal it. Then walk away.",
    flip: true,
    body: (
      <>
        <p>
          Chalked paint scratches without a topcoat. Clear wax or matte polycrylic both work. Apply a thin layer with a clean foam brush, working with the grain. Let it cure for <strong>twenty-four hours</strong> before you actually use the chair.
        </p>
        <p>
          This is the patience part. The chair is technically <em>done</em> after coat two — but if you sit in it before the sealer cures, you'll wear through the paint in two weeks. Twenty-four hours. <em>Set a timer.</em>
        </p>
      </>
    ),
    tip: { lab: "Wax vs polycrylic", text: "Wax has more depth — looks vintage, feels handmade. Polycrylic has more durability — better for a chair you sit on every day. For an entryway accent chair that mostly holds a planter, wax. For a kitchen chair, polycrylic." },
    fig: {
      img: "https://images.unsplash.com/photo-1572297870735-d68a30c0e603?w=1200&q=80",
      tag: "Fig 06 · The cure",
      cap: "the part that's mostly waiting.",
    },
    says: "I put a sticky note on it that says DO NOT SIT and a date 24 hours out. I have learned this lesson personally.",
  },
];

const Step = ({ data }) => (
  <article className={`sa-step ${data.flip ? "flip" : ""}`}>
    <div className="sa-step-text">
      <div className="sa-step-meta">
        <span className="sa-step-num">{data.n}</span>
        <span className="sa-step-phase">{data.phase}</span>
      </div>
      <h3>{data.title}</h3>
      <div className="sa-step-body">{data.body}</div>
      {data.tip && (
        <div className="sa-step-tip">
          <span className="lab">{data.tip.lab}</span>
          <p>{data.tip.text}</p>
        </div>
      )}
      {data.warn && (
        <div className="sa-step-warn">
          <span className="lab">{data.warn.lab}</span>
          <p>{data.warn.text}</p>
        </div>
      )}
    </div>
    <figure className="sa-step-fig">
      <div className="frame">
        <span className="tag">{data.fig.tag}</span>
        <img src={data.fig.img} alt="" loading="lazy" />
      </div>
      <figcaption>{data.fig.cap}</figcaption>
      {data.says && <SamSays>{data.says}</SamSays>}
    </figure>
  </article>
);

const Steps = () => (
  <section className="sa-steps">
    <div className="sa-steps-wrap">
      <header className="sa-steps-head">
        <h2>
          The <em>six</em> steps
        </h2>
        <span className="count">06 STEPS · ≈3 HRS ACTIVE · 24 HR CURE</span>
      </header>
      {STEPS.map((s) => (
        <Step key={s.n} data={s} />
      ))}
    </div>
  </section>
);

/* ============ HOT TAKES ============ */
const HotTakes = () => (
  <section className="sa-hottakes">
    <div className="sa-hottakes-wrap">
      <header className="sa-hottakes-head">
        <span className="lab">Sam's hot takes</span>
        <h2>
          Things I'm <em>tired</em> of seeing
        </h2>
      </header>
      <div className="sa-hottakes-list">
        <div className="sa-take">
          <div className="num">i.</div>
          <h3>"Distressing" a brand-new piece of furniture</h3>
          <p>
            If you bought it new, leave it alone. The whole reason distressed finishes work is that thrifted furniture comes pre-distressed by forty years of life. Sanding fake wear into a thing you bought yesterday is cosplay.
          </p>
        </div>
        <div className="sa-take">
          <div className="num">ii.</div>
          <h3>Skipping the topcoat to "save time"</h3>
          <p>
            The topcoat is the difference between a chair that survives a year and a chair that flakes by month three. <em>Twenty-four hours of waiting is shorter than redoing the project.</em>
          </p>
        </div>
        <div className="sa-take">
          <div className="num">iii.</div>
          <h3>Spray paint as a chalked-paint substitute</h3>
          <p>
            Different finish, different coverage, different durability. Spray paint is for metal and small parts. For wood furniture you'll touch every day, brushed-on chalked paint every time.
          </p>
        </div>
        <div className="sa-take">
          <div className="num">iv.</div>
          <h3>Picking a color that "matches your decor"</h3>
          <p>
            The chair is the accent. If it matches everything in the room, it disappears. Pick a color that fights the room a little. Sage in a warm room. Terracotta in a cool one. Charcoal anywhere.
          </p>
        </div>
      </div>
    </div>
  </section>
);

/* ============ WHAT I'D DO DIFFERENTLY ============ */
const Redo = () => (
  <section className="sa-redo">
    <div className="sa-redo-wrap">
      <aside className="sa-redo-side">
        what I'd do
        <br />
        <em style={{ color: "#D97A4F" }}>differently</em>
        <svg viewBox="0 0 80 60" fill="none">
          <path d="M5 12 C 25 6, 55 14, 70 38" stroke="#91A86C" strokeWidth="2" strokeLinecap="round" />
          <path d="M64 30 L 70 38 L 60 42" stroke="#91A86C" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" fill="none" />
        </svg>
      </aside>
      <div>
        <h2>
          What I'd do <em>differently</em> next time
        </h2>
        <p>
          The first chair I refinished, I tried to skip the sealer because I was tired of waiting. By month three, the seat had a worn-through patch where I sat. I had to sand the whole top down and start over on coats two and three. <strong>Don't be me.</strong> Twenty-four hours of waiting is shorter than redoing the project.
        </p>
        <p>
          What I'd tell <strong>past me</strong>: buy the foam roller in addition to the foam brush. The brush handles the spindles and the carved details, the roller handles the flat surfaces in a quarter of the time and leaves a smoother finish. Six bucks well spent.
        </p>
        <p>
          And I'd pick a louder color sooner. The first chair was cream. It's a fine chair, but it disappears against the wall. The second one was sage. The third was terracotta. The terracotta one is the one that actually shows up in photos. <em>The chair is the accent. Let it be the accent.</em>
        </p>
      </div>
    </div>
  </section>
);

/* ============ COMMENTS ============ */
const Comments = () => (
  <section className="sa-comments">
    <div className="sa-comments-wrap">
      <header className="sa-comments-head">
        <h2>
          From the <em>readers</em>
        </h2>
        <span className="meta">14 LETTERS · MOSTLY DRESSERS</span>
      </header>

      <div className="sa-comment">
        <div className="who">
          <span className="n">Maya R.</span>
          <span>Phoenix, AZ</span>
          <span className="when">2 weeks ago</span>
        </div>
        <div className="body">
          <p>
            Tried this last weekend with a $20 dresser instead of a chair. Step 6 saved me — I was about to use the wrong stripper and would've ruined the veneer. Drawer fronts came out unreal. Going back for the matching nightstand.
          </p>
          <div className="sa-reply">
            <span className="lab">Sam replied</span>
            <p>
              please send me a photo of the dresser. and the nightstand once you bag it.
              <span className="sig">— S</span>
            </p>
          </div>
        </div>
      </div>

      <div className="sa-comment">
        <div className="who">
          <span className="n">Theo R.</span>
          <span>Oakland, CA</span>
          <span className="when">3 weeks ago</span>
        </div>
        <div className="body">
          <p>
            Skipped the topcoat. Came back to read this article a month later because the seat was already wearing through. Lesson learned. Restripping today.
          </p>
        </div>
      </div>

      <div className="sa-comment">
        <div className="who">
          <span className="n">Priya K.</span>
          <span>Toronto, ON</span>
          <span className="when">1 month ago</span>
        </div>
        <div className="body">
          <p>
            Question — my chair has a cane seat. Do I paint the cane too or tape over it?
          </p>
          <div className="sa-reply">
            <span className="lab">Sam replied</span>
            <p>
              tape it. cane absorbs paint and gets crunchy. it's also the prettiest part of the chair, leave it. paint just the wood frame.
              <span className="sig">— S</span>
            </p>
          </div>
        </div>
      </div>

      <div className="sa-comment">
        <div className="who">
          <span className="n">Dale W.</span>
          <span>Toledo, OH</span>
          <span className="when">5 weeks ago</span>
        </div>
        <div className="body">
          <p>
            Property manager here. I refinish every chair we replace in our short-term rentals using exactly this method. Twenty-five bucks of materials is cheaper than a new chair every six months. Forwarding to my whole team.
          </p>
        </div>
      </div>
    </div>
  </section>
);

/* ============ SIGNOFF ============ */
const Signoff = () => (
  <section className="sa-signoff">
    <div className="sa-signoff-wrap">
      <div>
        <h2>
          That's it. <em>Go find a chair.</em>
        </h2>
        <p>
          If you tried this and it worked — or it didn't — I want to hear about it. Photo of the before and after, what you changed, what you'd do differently. I read everything that comes in.
        </p>
        <div className="sig">— Sam</div>
        <div className="ctas" style={{ marginTop: 28 }}>
          <a href="/contact/" className="btn primary">
            Send a photo →
          </a>
          <a href="/en/contributors/sam/" className="btn ghost">
            More from Sam
          </a>
        </div>
      </div>
      <div className="sa-readnext">
        <span className="lab">Read next</span>
        <a href="/en/contributors/sam/how-to-hang-something-heavy-without-asking-anyone-for-help/">
          <span>Hang something heavy without asking anyone for help</span>
          <span className="m">45 MIN</span>
        </a>
        <a href="/en/decorate/kitchen/">
          <span>Decorate × Kitchen — paint and finish projects</span>
          <span className="m">HUB</span>
        </a>
        <a href="/en/decorate/living-room/">
          <span>Decorate × Living Room</span>
          <span className="m">HUB</span>
        </a>
        <a href="/en/contributors/sam/">
          <span>All of Sam's guides</span>
          <span className="m">PROFILE</span>
        </a>
      </div>
    </div>
  </section>
);

/* ============ ROOT ============ */
const Article = () => (
  <div className="sa">
    <Crumbs />
    <Hero />
    <Lede />
    <WhatYouNeed />
    <Steps />
    <HotTakes />
    <Redo />
    <Comments />
    <Signoff />
  </div>
);

ReactDOM.createRoot(document.getElementById("render-target")).render(<Article />);
