import React, { useRef, useState, useEffect } from "react"; import { ArrowDown, Check, BookOpen, AlertTriangle, Zap } from "lucide-react"; import { PracticeFromDataset } from "../../../components/lessons/LessonShell"; import { FORM_STRUCTURE_EASY, FORM_STRUCTURE_MEDIUM, } from "../../../data/rw/form-structure-sense"; import ClauseBreakdownWidget, { type ClauseExample, } from "../../../components/lessons/ClauseBreakdownWidget"; import DecisionTreeWidget, { type TreeScenario, type TreeNode, } from "../../../components/lessons/DecisionTreeWidget"; interface LessonProps { onFinish?: () => void; } // ── Clause Breakdown data ────────────────────────────────────────────────── const CLAUSE_EXAMPLES: ClauseExample[] = [ { title: "Pronoun\u2013Antecedent Agreement", segments: [ { text: "Each student", type: "subject", label: "Antecedent: singular" }, { text: " must submit", type: "verb", label: "Verb" }, { text: " their", type: "conjunction", label: "\u26a0 Incorrect: \u2018their\u2019 is plural", }, { text: " own assignment", type: "ic", label: "" }, { text: ".", type: "punct" }, ], }, { title: "Who vs. Whom", segments: [ { text: "The scientist", type: "subject", label: "Subject of main clause", }, { text: " who", type: "conjunction", label: "Subject pronoun: \u2018who\u2019 replaces \u2018he/she\u2019", }, { text: " won the award", type: "ic", label: "Relative clause" }, { text: " is my mentor", type: "verb", label: "Main verb" }, { text: ".", type: "punct" }, ], }, { title: "Pronoun Case: Subject vs. Object", segments: [ { text: "The award was given to", type: "ic", label: "" }, { text: " her", type: "conjunction", label: "Object pronoun: \u2018her\u2019 after preposition \u2018to\u2019", }, { text: " and", type: "conjunction", label: "" }, { text: " me", type: "conjunction", label: "Object pronoun: \u2018me\u2019 not \u2018I\u2019 \u2014 object position", }, { text: ".", type: "punct" }, ], }, ]; // ── Decision Tree data ───────────────────────────────────────────────────── const PRONOUN_TREE: TreeNode = { id: "root", question: "What type of pronoun problem is this?", hint: "Is the question about: (1) who/whom, (2) they/it agreement with antecedent, or (3) subject vs. object case (I/me, he/him, she/her)?", yesLabel: "who / whom choice", noLabel: "Agreement or case question", yes: { id: "who-whom", question: "Is the pronoun acting as the SUBJECT of its clause (performing the action)?", hint: "Substitute: if 'he/she' fits \u2192 use 'who'. If 'him/her' fits \u2192 use 'whom'. Try: 'The scientist who/whom won\u2026' \u2192 'he won' \u2192 'who'.", yesLabel: "Yes \u2014 it's the subject (he/she would fit)", noLabel: "No \u2014 it's the object (him/her would fit)", yes: { id: "use-who", result: "\u2713 Use 'who' \u2014 it's in subject position (replaces he/she).", resultType: "correct", ruleRef: "who = he/she | whom = him/her", }, no: { id: "use-whom", result: "\u2713 Use 'whom' \u2014 it's in object position (replaces him/her).", resultType: "correct", ruleRef: "whom = him/her | 'To whom' = 'To him'", }, }, no: { id: "agreement-or-case", question: "Does the pronoun need to AGREE with its antecedent (match in number)?", hint: "Antecedent = the noun the pronoun refers back to. Example: 'Each student submitted their assignment' \u2014 'their' must match 'each student' (singular).", yesLabel: "Yes \u2014 agreement question", noLabel: "No \u2014 subject/object case question (I vs. me)", yes: { id: "agreement", question: "Is the antecedent singular or an indefinite pronoun (each, every, anyone, someone)?", yesLabel: "Yes \u2014 singular or indefinite", noLabel: "No \u2014 clearly plural", yes: { id: "singular-antecedent", result: "\u26a0 Use a SINGULAR pronoun: 'he or she' / 'his or her'. Indefinite pronouns (each, someone, anyone) require singular pronouns. 'Their' is plural and incorrect here.", resultType: "warning", ruleRef: "Each student \u2192 his or her (not their)", }, no: { id: "plural-antecedent", result: "\u2713 Use a plural pronoun: they, their, them \u2014 matches the plural antecedent.", resultType: "correct", ruleRef: "[Plural noun] \u2192 they/their/them", }, }, no: { id: "case", question: "Is the pronoun in SUBJECT position (before the verb, doing the action)?", hint: "Try covering the other person: 'He and I went' \u2192 'I went' \u2713. 'Between he and I' \u2192 'Between I' \u2717 \u2192 use 'me'.", yesLabel: "Yes \u2014 it's the subject", noLabel: "No \u2014 it's after a preposition or is an object", yes: { id: "subject-case", result: "\u2713 Use subject pronouns: I, he, she, we, they, who.", resultType: "correct", ruleRef: "Subject: I/he/she/we/they performed the action", }, no: { id: "object-case", result: "\u2713 Use object pronouns: me, him, her, us, them, whom \u2014 after prepositions or as direct/indirect objects.", resultType: "correct", ruleRef: "Object: gave it to me/him/her/them", }, }, }, }; const TREE_SCENARIOS: TreeScenario[] = [ { label: "Sentence 1", sentence: "Each of the students submitted their assignments before the deadline.", tree: PRONOUN_TREE, }, { label: "Sentence 2", sentence: "The award was presented to Sarah and I at the end of the ceremony.", tree: PRONOUN_TREE, }, { label: "Sentence 3", sentence: "The professor, who students found inspiring, won the teaching award.", tree: PRONOUN_TREE, }, ]; // ── Lesson component ─────────────────────────────────────────────────────── const EBRWPronounsLesson: React.FC = ({ onFinish }) => { const [activeSection, setActiveSection] = useState(0); const sectionsRef = useRef<(HTMLElement | null)[]>([]); useEffect(() => { const observers: IntersectionObserver[] = []; sectionsRef.current.forEach((el, idx) => { if (!el) return; const obs = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) setActiveSection(idx); }, { threshold: 0.3 }, ); obs.observe(el); observers.push(obs); }); return () => observers.forEach((o) => o.disconnect()); }, []); const scrollToSection = (index: number) => { setActiveSection(index); sectionsRef.current[index]?.scrollIntoView({ behavior: "smooth" }); }; const SectionMarker = ({ index, title, icon: Icon, }: { index: number; title: string; icon: React.ComponentType>; }) => { const isActive = activeSection === index; const isPast = activeSection > index; return ( ); }; return (
{/* Section 0 — Concept + Clause Breakdown */}
{ sectionsRef.current[0] = el; }} className="min-h-screen flex flex-col justify-center mb-24 pt-20 lg:pt-0" >
Standard English Conventions

Pronouns & Agreement

See how pronoun choices work — then master the rules the SAT tests most.

{/* Rule summary grid */}
{[ { num: 1, rule: "Who vs. Whom", desc: "who = subject (he/she). whom = object (him/her). Test by substituting.", }, { num: 2, rule: "Pronoun\u2013Antecedent Agreement", desc: "Pronoun must match antecedent in number. Each/anyone/someone \u2192 singular.", }, { num: 3, rule: "Subject Pronouns", desc: "I, he, she, we, they, who \u2014 before verbs as subjects.", }, { num: 4, rule: "Object Pronouns", desc: "me, him, her, us, them, whom \u2014 after prepositions or as objects.", }, ].map((r) => (
{r.num} {r.rule}

{r.desc}

))}
{/* Clause Breakdown */}

Pronoun Anatomy

Hover over any colored span to see its label. Use the tabs to switch between examples.

{/* Common Traps */}
{[ { label: "Each/Every/Anyone \u2192 Singular Pronoun", desc: "'Each student submitted their assignment' sounds natural but is wrong. Use 'his or her' for formal SAT writing.", }, { label: "I vs. Me After Prepositions", desc: "'between you and I' is always wrong. After prepositions, always use object pronouns: me, him, her, us, them.", }, { label: "Who vs. Whom \u2014 Substitute Test", desc: "Replace who/whom with he/him. If 'he' fits \u2192 who. If 'him' fits \u2192 whom.", }, ].map((t) => (

{t.label}

{t.desc}

))}

Golden Rule

The SAT's most common pronoun traps are 'their' with singular antecedents, 'I' after prepositions, and 'who' where 'whom' is correct. Test with substitution: he/him for who/whom, 'it is' for 'it's'.

{/* Section 1 — Decision Tree */}
{ sectionsRef.current[1] = el; }} className="min-h-screen flex flex-col justify-center mb-24" >

Decision Tree Lab

Work through the pronoun logic one question at a time. Click your answer at each step.

{/* Section 2 — Quiz */}
{ sectionsRef.current[2] = el; }} className="min-h-screen flex flex-col justify-center mb-24" >

Practice Questions

{FORM_STRUCTURE_EASY.slice(2, 4).map((q) => ( ))} {FORM_STRUCTURE_MEDIUM.slice(1, 2).map((q) => ( ))}
); }; export default EBRWPronounsLesson;