The Night My Daughter Was Rushed To The ICU, My Mother Called. “Tomorrow Is Your Sister’s Promotion Party. Help With Decorations.” “Not Now,” I Said.018

The Night My Daughter Was Rushed To The ICU, My Mother Called. “Tomorrow Is Your Sister’s Promotion Party. Help With Decorations.” “Not Now,” I Said.018

The Night My Daughter Was Rushed To The ICU, My Mother Called. “Tomorrow Is Your Sister’s Promotion Party. Help With Decorations.” “Not Now,” I Said.
She Said Coldly, “Don’t Come, And We’re Done.” I Hung Up And Deleted Her Contact. The Next Day, My Daughter Woke Up And Said, “Mom… I Had The Accident Because….”
The hospital hallway smelled of bleach, stale coffee, and fear, the kind that makes every sneaker squeak sound too loud. Fluorescent light buzzed above me. The glass doors of the pediatric ICU stayed cold under my palm while my eight-year-old daughter, Lily, lay unconscious on the other side.
My name is Emma, and I had spent years being calm in hospitals. I was a nurse. I knew the language. Head trauma. Possible internal bleeding. Swelling risk. Close observation. But when those words were written on Lily’s intake chart at St. Agnes Children’s Hospital, they did not sound clinical.
They sounded like the end of air.
Five years earlier, cancer took my husband slowly, one appointment and one hollowed-out morning at a time. After that, Lily and I survived in pieces: school lunches packed before dawn, double shifts, bedtime promises whispered into a dark room. “It’s you and me, baby,” I would tell her. She always answered, “Always.”
We did not have much, but we had peace whenever my mother, Barbara, was not taking it from us. Every weekend, she expected us at her house. Not invited. Expected. I cooked, cleaned, picked up groceries, fixed Rachel’s errands, and smiled through exhaustion because Barbara had trained me to believe guilt was the price of being a daughter.
Rachel, my younger sister, floated in with her three-year-old twins, smelling like expensive lotion and impatience. “Watch them for a minute, sweetheart,” she would tell Lily. A minute became an hour. An hour became an afternoon. Somehow, my eight-year-old became responsible for two toddlers while adults drank tea and called me ungrateful.
Whenever I objected, Barbara narrowed her eyes. “Children need responsibility,” she said. Then she would turn to Lily and soften her voice. “Your mother doesn’t understand family the way we do.”
Control rarely arrives wearing a monster’s face. Sometimes it comes holding a casserole dish, asking for help, calling obedience love.
After my father died eight years ago, Barbara changed, or maybe she only stopped pretending. She said his inheritance belonged entirely to her. She said I had no right to ask questions. What she wanted was not loyalty.
It was obedience.
Then David came into our lives. He was a pediatric surgeon, calm in emergencies and kind in ordinary moments. He knelt when he spoke to Lily. He remembered she hated mushrooms and loved strawberry ice cream. Three months after we started dating, Lily asked him if he might be her daddy someday.
David did not laugh. He looked at her like the question mattered. “We’ll see what your mom says,” he told her, voice thick.
We planned to marry in three months. Nothing huge. Nothing flashy. Just a small ceremony, a safe home, and a future where love did not feel like debt.
When David learned what happened at Barbara’s house, his jaw tightened. “Emma, that is not helping family. That is control. Lily should never be responsible for toddlers like that.”
I knew he was right, but knowing the truth and breaking free are different things. The moment Barbara sensed she was losing me, she became crueler. Rachel cried that nobody cared about her stress. Barbara accused me of abandoning her. Then Lily began whispering, “Mom, I don’t want to go to Grandma’s anymore.”
Every time I asked why, she looked at her shoes.
I hate myself now for accepting silence as an answer.

Last Friday, Rachel was preparing for her promotion party. Barbara demanded I come help with centerpieces, banners, gift bags, and, of course, the twins. I brought Lily because I had been raised to feel guilty for saying no. Then I left for less than forty minutes to buy supplies Barbara claimed were urgent.
At 7:06 p.m., my phone rang. Barbara’s voice was strangely flat. “Lily fell down the stairs,” she said. “I called an ambulance.”
The store lights blurred beside a display of gold ribbons. By the time David and I reached St. Agnes, Lily was unconscious. Her hand was cold in mine. The pediatric ICU bracelet looked too big around her wrist. A bandage covered part of her head while the monitor kept beeping as if it trusted a rhythm I no longer understood.
Barbara arrived later, composed. “She was running,” she said. “Children don’t listen. I wasn’t watching every second.”
Not one tear.
Rachel stood behind her scrolling through her phone, muttering about the caterer. I sat beside Lily’s bed and pressed my lips to her fingers, whispering that I was sorry. Sorry I left. Sorry I had not listened. Sorry I took her back to a house where her fear had already learned to hide.
Then my phone rang.
Barbara.
I answered because some broken part of me still expected a mother. “Is she awake?” she asked.
“No,” I whispered.
There was a pause. Then she said, “Tomorrow is Rachel’s promotion party. You’re still doing the decorations, right?”
For one second, I thought grief had damaged my hearing. “Not now,” I said. “My daughter is in the ICU.”
“You’re not a doctor, Emma,” she snapped. “Sitting there won’t help her. Are you really going to ruin your sister’s night?” Rachel grabbed the phone and sobbed about guests, photos, the cake, her boss attending, how hard she had worked to be recognized.
“My daughter is unconscious,” I said.
Barbara came back on the line, her voice colder than the hospital floor. “Don’t come, and we’re done.”
Then she hung up.
I stared at the black screen while Lily’s monitor beeped beside me. For the first time in my life, my mother’s threat did not sound like punishment. It sounded like a door opening.
Nicole, my closest friend from work, stayed with me through the night. She had heard enough of the call. “Emma,” she said, touching my shoulder, “this is not family. This is abuse with a prettier name.”
David returned from speaking with the attending physician, his face controlled but dangerous. “Anyone who can talk about decorations while Lily is lying here,” he said, “does not get access to either of you anymore.”
All night, messages came in. Barbara said I was dramatic. Rachel said I was jealous. They accused me of exaggerating Lily’s condition to sabotage the party. They said Dad would be ashamed of me. David finally took the phone from my hand. “No more.”
I opened my contacts. My thumb hovered over Barbara’s name. I remembered every command, every insult, every weekend Lily had gone quiet in the back seat after leaving that house.
Then I deleted Barbara.
Then Rachel.
It felt like cutting a chain I had worn so long I had mistaken it for skin.
The next morning, weak sunlight slipped through the ICU blinds. I had not slept. I sat beside Lily, holding her hand, determined that if she opened her eyes, mine would be the first face she saw.
Then the door opened.
Barbara and Rachel walked in dressed for a celebration. My mother wore pearls. Rachel’s hair was curled. Their perfume hit the sterile air too sweet and wrong, sugar poured over metal. They looked at Lily for half a second.
Then Rachel said, “So what are we doing about the venue?”
Something inside me went still. “Get out,” I said.
Barbara’s mouth tightened. “Do not embarrass me in a hospital.” Rachel began crying about the cake, fifty guests, and how everyone would ask questions if I did not show up.
David stepped between them and Lily’s bed. “You need to leave.”
For one breath, nobody moved. Rachel’s manicured fingers froze around her phone. Barbara’s pearls rested against her throat without shifting. The IV pump clicked softly beside the bed, and the monitor kept counting Lily’s heartbeat while every adult in that room decided whether truth mattered more than appearances.
Then Lily moved.
Her fingers twitched in mine. Her eyelids fluttered. I stood so fast the chair scraped the floor.
“Lily?” I whispered. “Baby, Mama’s here.”
Her eyes opened slowly, unfocused at first, then searching. Terrified. When Barbara leaned over the bed and said, “Grandma’s here, sweetheart,” Lily’s entire body stiffened.
Tears filled her eyes. “Mama,” she whispered, barely audible, “I’m scared of Grandma.”
The room froze differently then.
David’s face changed. Barbara stepped back. “She’s confused. Medication does that.”
But Lily shook her head, trembling. “I didn’t fall.”
My heart stopped.
Rachel made a sharp sound. Lily squeezed my fingers with every bit of strength her little body had left.
“Mom,” she sobbed, “I had the accident because Grandma said if I told you what happened upstairs, she would make sure you never married David, and then she grabbed my arm when I tried to run.”
Rachel’s color drained.
Barbara’s confidence slipped from her face like water.
And when Lily turned her tear-filled eyes toward Rachel, she whispered—
💣

“…Aunt Rachel saw everything.”
The words barely left Lily’s cracked lips before the room detonated into silence.
Not ordinary silence.
The kind that feels alive.
Heavy.
Breathing.
Watching.
Rachel’s mouth opened, then closed again. Her face had gone ghost-white beneath the careful makeup she had applied for her promotion party. One perfectly curled strand of hair clung to her cheek as if even her body had begun unraveling.
Barbara recovered first.
“She hit her head,” she snapped quickly. “Emma, she’s confused.”
But Lily started crying harder.
“No!” she gasped. “Aunt Rachel was upstairs! She heard Grandma yelling at me!”
I felt my knees weaken beside the bed.
David caught my elbow before I collapsed.
“Lily,” he said gently, kneeling beside her, “sweetheart, can you tell us exactly what happened?”
Barbara stepped forward instantly. “She needs rest, not interrogation.”
David’s eyes cut toward her with a calmness more terrifying than anger.
“She’s speaking.”
For once, Barbara actually stopped talking.
Lily’s breathing shook.
“I was watching the twins,” she whispered. “Grandma was mad because I spilled juice on the gold ribbons.”
Rachel suddenly blurted, “It was an accident!”
Every head turned toward her.
Too fast.
Too defensive.
And she realized immediately she had said the wrong thing.
Lily flinched at the sound of her voice.
Then the little girl looked at me with the kind of fear no child should ever carry for adults who claim to love her.
“She said I ruin everything,” Lily whispered. “She said Mom only cares about me and that’s why David won’t stay forever.”
Something inside my chest tore open.
Because those words weren’t random.
They were targeted.
Precise.
Adult cruelty carefully sharpened for a child.
Barbara folded her arms. “I was disciplining her.”
“You terrorized her,” David said coldly.
But Lily wasn’t finished.
“She told me if Mom married David, she’d forget Grandma and Aunt Rachel forever.” Tears slid down Lily’s cheeks into her hairline. “Then Grandma grabbed my arm when I tried to go downstairs.”
Barbara’s voice rose sharply. “I was trying to stop her from running!”
Lily shook violently now.
“You squeezed too hard.”
And suddenly I noticed them.
Faint bruises.
Finger-shaped.
Just above the IV tape on Lily’s arm.
My stomach turned so violently I thought I might vomit.
David saw them too.
His face changed instantly.
Not rage.
Something colder.
Professional.
Precise.

The look of a surgeon identifying damage.
He stood up slowly. “I’m calling hospital security.”
Barbara laughed once, but there was panic underneath it now.
“You cannot be serious.”
“Oh, I’m very serious.”
Rachel suddenly burst into tears.
Not soft crying.
Chaotic crying.
The kind people do when pressure finally crushes the lie holding them together.
“I told you not to touch her!” she screamed suddenly at Barbara.
The room froze.
Barbara turned toward her daughter with pure disbelief.
Rachel covered her mouth too late.
And in that exact second, I understood something horrifying:
This was not an accident.
Not fully.
Not even close.
Barbara’s voice dropped low and dangerous. “Rachel.”
But Rachel had already broken.
“She wouldn’t stop talking about David!” Rachel sobbed. “Mom just wanted to scare her!”
The sound that came out of me didn’t sound human.
“Scare her?”
Rachel looked at me desperately. “You don’t understand! Mom said once you married David, you’d leave us!”
I stared at my sister.
This woman I had spent my life protecting.
Helping.
Excusing.
And suddenly all I could see was someone who watched my child get hurt and cared more about centerpieces.
“You watched this happen?”
Rachel’s mascara streaked down her cheeks.
“She slipped afterward! I didn’t mean—”
“You didn’t mean what?” David barked. “For her skull to crack against the stairs?”
Security entered then.
Two officers.
A nurse behind them.
Barbara immediately transformed.
Tears appeared instantly in her eyes like someone flipping a switch.
“My granddaughter is confused,” she said shakily. “This man is threatening us.”
One officer looked uncertain.
Until Lily screamed.
“Don’t let Grandma touch me!”
Every single person in the room went still.
Children know.
Instinctively.
Who is safe.
And who is not.
The officer stepped between Barbara and the bed immediately.
“Ma’am, I need you to step outside.”
Barbara’s mask shattered.
“I am her grandmother!”
“And right now,” the officer replied firmly, “the child is afraid of you.”
For the first time in my life, someone chose Lily over Barbara’s performance.
And Barbara hated it.
Her face twisted with fury so sudden and ugly that even the officer looked startled.
“This family would be nothing without me!” she snapped.
“No,” I said quietly.
My voice surprised even me.
Because suddenly I wasn’t scared anymore.
“You just needed us to believe that.”
Barbara stared at me.
Really stared.
As if she had never seen me clearly before.
Maybe she hadn’t.
Because obedient daughters are easier to control than human beings.
“You ungrateful little bitch,” she hissed.
Rachel gasped softly.
The officer stepped closer. “That’s enough.”
But the damage was already done.
Not to me.
To her.
Because everyone in that room had finally seen it.
The real Barbara.
Not the polished widow hosting dinner parties.
Not the generous grandmother.
Not the martyr mother.
A woman who treated love like ownership.
And children like leverage.
—
Hospital administration contacted police within the hour.
A pediatric forensic nurse photographed the bruises on Lily’s arm while I sat beside her trying not to fall apart every time she winced.
David handled everything else.
Statements.
Security footage requests.
Witness reports.
The attending physician confirmed Lily’s injuries were not fully consistent with a simple fall.
There had been force beforehand.
Grabbing.
Pulling.
Maybe shaking.
And Rachel was unraveling by the minute.
By evening, detectives had separated Barbara and Rachel for questioning.
That’s when the first real crack appeared.
Not from Barbara.
From Rachel.
Because Rachel had spent her entire life surviving by staying loyal to the strongest person in the room.
But now the strongest person wasn’t Barbara anymore.
It was the truth.
And truth terrifies cowards.
Nicole arrived with coffee and fresh clothes for me. She hugged me so tightly I nearly broke apart in her arms.
“You were right there,” I whispered shakily. “I still let this happen.”
Nicole pulled back immediately. “Emma. Stop.”
I shook my head. “Lily tried to tell me she hated going there.”
“You were conditioned your entire life to normalize abuse.”
The word hit me strangely.
Abuse.

I had accepted it for myself long ago.
But hearing it connected to Lily made me feel physically ill.
Because once you become a mother, your pain changes shape.
You can survive almost anything happening to you.
But not to your child.
Never your child.
—
At 9:40 p.m., Detective Alvarez entered Lily’s room carrying a small evidence bag.
Inside was a gold ribbon stained with diluted juice.
And tiny spots of blood.
“She fell near the staircase landing,” he explained quietly. “But according to your sister’s statement, the confrontation began upstairs.”
I looked at him sharply. “Rachel talked?”
“Oh yes.”
David leaned against the wall with folded arms. “What did she say?”
The detective exhaled slowly.
“She says your mother became angry after Lily mentioned your upcoming wedding.”
Cold spread through me.
“Why?”
Alvarez hesitated.
Then carefully said:
“Apparently your mother believed once you married Dr. Carter, you would stop financially supporting the family.”
I blinked.
“What?”
Rachel had confessed more than anyone expected.
Barbara was drowning in debt.
Massive debt.
Credit cards.
Loans.
Second mortgages.
Rachel’s lifestyle—the luxury stroller, the expensive skincare, the endless shopping sprees—had not come from success.
It came from Barbara draining everything after my father’s death.
And me.
Slowly.
Quietly.
For years.
Every grocery run.
Every “family emergency.”
Every utility bill I secretly covered.
Every weekend I babysat Rachel’s twins for free while they lived beyond their means.
I wasn’t helping family.
I was financing dysfunction.
And Barbara knew David threatened that control.
A stable marriage meant distance.
Boundaries.
Freedom.
So she targeted the weakest person emotionally available:
Lily.
“She told Lily David would leave her like her father died,” Alvarez said grimly. “Rachel claims Lily got upset and tried to run downstairs to call you.”
I closed my eyes.
God.
My baby.
“She says Barbara grabbed her arm hard enough to spin her,” the detective continued. “Lily lost balance near the staircase.”
David’s jaw clenched so hard I thought his teeth might crack.
“But that’s not the worst part,” Alvarez added quietly.
My eyes opened.
“What do you mean?”
The detective looked directly at me.
“Rachel admitted your mother delayed calling 911.”
The room went silent.
Completely silent.
Even the monitor seemed quieter.
I felt my heartbeat slow in a terrifying way.
“How long?” I whispered.
“Approximately eleven minutes.”
I stared at him.
Eleven minutes.
My daughter unconscious at the bottom of the stairs.
And Barbara waited.
“Why?” David asked, voice dangerously calm.
Alvarez’s expression hardened.
“According to Rachel… your mother wanted time to agree on a story.”
I thought I understood pain before that moment.
I didn’t.
Because grief hurts.
Fear hurts.
But betrayal by your own mother?
That destroys the architecture of your entire life.
Suddenly memories rearranged themselves inside my head like broken glass finding the shape of a weapon.
The guilt.

The manipulation.
The constant criticism.
The way Barbara isolated me after Dad died.
The way she weaponized obligation.
The way Lily always became quieter after visiting her house.
And then one memory surfaced so sharply it stole my breath.
Two months earlier, Lily had spilled soup at Barbara’s table.
Barbara grabbed her wrist too hard.
Just for a second.
But Lily yelped.
I remembered apologizing.
Apologizing.
To Barbara.
Rage flooded me so fast my vision blurred.
David touched my shoulder carefully.
“You don’t owe her your guilt anymore,” he said softly.
And that was the moment I finally believed him.
—
Rachel was arrested just after midnight for child endangerment and obstruction.
Barbara was arrested for aggravated child abuse.
Neither went quietly.
Rachel sobbed hysterically.
Barbara demanded lawyers and threatened lawsuits.
But none of it mattered now.
Because Lily was alive.
And children tell the truth in ways adults cannot manipulate forever.
—
Three days later, Lily finally sat up fully on her own.
The swelling had decreased.
Her speech was stronger.
Color returned slowly to her face.
I was helping her eat strawberry gelatin when she suddenly asked:
“Are Grandma and Aunt Rachel mad at me?”
The question shattered me.
Because abused children almost always think honesty is betrayal.
I set the spoon down carefully.
“No, sweetheart.”
“But they got in trouble because of me.”
“No.” My voice cracked. “They got in trouble because they hurt you.”
Lily looked uncertain.
David pulled a chair beside the bed.
“Lily,” he said gently, “do you know what adults are supposed to do?”
She shrugged slightly.
“Protect kids.”
“That’s right.” He smiled softly. “And anyone who hurts children is responsible for their own choices.”
Lily stared at the blanket for a long moment.
Then whispered:
“I thought maybe if I was easier to love, Grandma wouldn’t yell.”
I broke completely.
Not loudly.
Not dramatically.
Just silently.
Tears falling into my hands while years of guilt crushed me from the inside out.
Because my daughter had inherited the exact same wound I carried my whole life:
Believing love had to be earned through obedience.
David wrapped one arm around my shoulders while Lily reached for my hand.
And in that hospital room, three damaged people held onto each other like survivors climbing from wreckage.
—
The investigation uncovered more over the following weeks.
Barbara had secretly opened credit cards using my information years earlier.
Thousands of dollars in hidden debt.
Rachel knew.
Both had counted on me staying trapped emotionally long enough never to question it.
Detectives also discovered Barbara had been telling relatives David was controlling and abusive in preparation for isolating me if I cut contact.
Classic manipulation.
Preemptive victimhood.
She wanted to destroy my credibility before I escaped.
But this time she underestimated something:
Mothers become dangerous when their children are threatened.
And I was done surviving quietly.
—
The court issued a protective order immediately.
Barbara was prohibited from contacting us.
Rachel lost temporary custody of her twins pending investigation because she admitted leaving them repeatedly under Lily’s supervision.
When social workers interviewed the twins separately, one of them said something haunting:
“Grandma says crying girls are bad girls.”
Even the caseworker cried after hearing it.
Because cruelty echoes through generations unless someone finally stops it.
—
Two months later, spring sunlight filled our small backyard while Lily sat wrapped in a blanket eating strawberry ice cream beside David.
Her scar was healing.
Some days she still had nightmares.
Some days she panicked if someone raised their voice unexpectedly.
But she laughed again too.
Real laughter.
The kind children make when safety finally reaches their nervous system.
David looked at me across the yard.
“You know,” he said quietly, “you saved her too.”
I shook my head immediately.
“No. I almost failed her.”
“You listened eventually.”
I looked toward Lily.
“I should’ve listened sooner.”
David nodded gently.

“Maybe. But the difference between you and your mother is that when truth finally hurt… you chose to change instead of demanding silence.”
I never forgot that.
Because that is the real difference between love and control.
Love allows truth.
Control punishes it.
—
Barbara took a plea deal six months later.
No prison sentence could fully explain the damage she caused.
Not to me.
Not to Lily.
Not even to Rachel, who had spent her entire life desperate for approval from a woman incapable of giving real love.
At the sentencing hearing, Barbara finally looked old.
Smaller.
Not powerful anymore.
Just hollow.
Before deputies led her away, she looked at me and said:
“I did everything for this family.”
And for the first time in my life, I answered honestly.
“No. You did everything for yourself and called it family so nobody would leave.”
She had no reply to that.
None.
Because narcissists survive through confusion.
Truth starves them.
—
A year later, David and I got married in a small garden ceremony behind our new home.
Nothing extravagant.
Just sunlight.
Flowers.
Safe people.
Lily wore a pale blue dress and carried strawberries instead of roses because she said flowers were “too fancy and stressful.”
Halfway through the reception, she climbed into my lap and whispered:
“Mom?”
“Yeah, baby?”
“You know what’s weird?”
“What?”
“I’m not scared anymore when the phone rings.”
I nearly cried into my champagne.
Because healing is not always dramatic.
Sometimes it’s that simple.
A child hearing a ringtone without fear.
And as music drifted through warm summer air, I realized something that changed my life forever:
The worst thing Barbara ever did was convince me that love meant enduring pain.
The best thing I ever did…
was refusing to teach that lie to my daughter.
Report this article
Select a reason for reporting:
Inaccurate information Copyright violation Spam / advertisement Offensive content Other '; footer.hidden = true; overlay.hidden = false; document.body.style.overflow = 'hidden'; } function hideSection() { if (section) section.hidden = true; } function openModal() { if (alreadyReported) { showSuccess(); return; } overlay.hidden = false; document.body.style.overflow = 'hidden'; } function closeModal() { overlay.hidden = true; document.body.style.overflow = ''; footer.hidden = false; overlay.querySelectorAll('input[name="report_reason"]').forEach(function(r) { r.checked = false; }); document.getElementById('reportMessage').value = ''; errorBox.hidden = true; submitBtn.disabled = false; submitBtn.textContent = 'Submit report'; imageItems = []; imgGrid.innerHTML = ''; updateAttachBtn(); } btn.addEventListener('click', openModal); closeBtn.addEventListener('click', closeModal); cancelBtn.addEventListener('click', closeModal); overlay.addEventListener('click', function(e) { if (e.target === overlay) closeModal(); }); document.addEventListener('keydown', function(e) { if (!overlay.hidden && e.key === 'Escape') closeModal(); }); // --- Error helper --- function showError(msg) { errorBox.textContent = msg; errorBox.hidden = false; } // --- Submit --- submitBtn.addEventListener('click', function() { var selected = overlay.querySelector('input[name="report_reason"]:checked'); if (!selected) { showError('Please select a reason.'); return; } errorBox.hidden = true; submitBtn.disabled = true; var itemsToUpload = imageItems.filter(function(it) { return !it.uploadedUrl; }); if (itemsToUpload.length === 0) { doSubmit(selected.value); return; } submitBtn.textContent = 'Uploading…'; var done = 0, failed = 0; itemsToUpload.forEach(function(entry) { entry.statusEl.textContent = '…'; entry.statusEl.className = 'report-img-item__status'; entry.statusEl.hidden = false; resizeImage(entry.file, MAX_LONG_PX, function(resized) { uploadFile(resized, currentSlug, function(err, url) { done++; if (err) { failed++; entry.statusEl.textContent = 'Failed'; entry.statusEl.className = 'report-img-item__status err'; } else { entry.uploadedUrl = url; entry.statusEl.textContent = '✓'; entry.statusEl.className = 'report-img-item__status done'; } if (done === itemsToUpload.length) { if (failed > 0) { showError('Could not upload ' + failed + ' image(s). Remove the failed ones (red) or submit without them.' ); submitBtn.disabled = false; submitBtn.textContent = 'Submit report'; } else { doSubmit(selected.value); } } }); }); }); }); function doSubmit(reason) { submitBtn.textContent = 'Sending…'; var uploadedUrls = imageItems .map(function(it) { return it.uploadedUrl; }) .filter(Boolean); var payload = { reason: reason, message: document.getElementById('reportMessage').value.trim(), post_slug: currentSlug, post_url: window.location.href }; if (uploadedUrls.length) payload.image_urls = uploadedUrls; fetch('/api/post-report', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' }, body: JSON.stringify(payload) }) .then(function(r) { return r.json(); }) .then(function(data) { if (data && data.ok) { markReported(currentSlug); alreadyReported = true; bodyEl.innerHTML = '✓ Thank you for your report.'; footer.hidden = true; setTimeout(function() { closeModal(); footer.hidden = false; hideSection(); }, 2000); } else { showError((data && data.message) ? data.message : 'Something went wrong. Please try again.'); submitBtn.disabled = false; submitBtn.textContent = 'Submit report'; } }) .catch(function() { showError('Connection failed. Please try again.'); submitBtn.disabled = false; submitBtn.textContent = 'Submit report'; }); } })();
Comments 0
Posting as Guest '; } return; } var normalizedItems = items.slice().reverse(); var html = normalizedItems.map(function(comment) { var replies = Array.isArray(comment.replies) ? comment.replies : []; var repliesHtml = replies.map(function(reply) { return '' + '' + '' + '' + '' + escapeHtml(reply.author_name) + '' + escapeHtml(reply.time) + '' + '
' + escapeHtml(reply.content) + '
' + '' + '' + '' + ''; }).join(''); return '' + '' + '' + '' + '' + escapeHtml(comment.author_name) + '' + escapeHtml(comment.time) + '' + '
May you like
' + escapeHtml(comment.content) + '
' + '' + '' + '' + '' + (repliesHtml ? '' + repliesHtml + '' : '') + ''; }).join(''); if (mode === 'prepend') { listEl.insertAdjacentHTML('afterbegin', html); return; } listEl.insertAdjacentHTML('beforeend', html); } async function loadComments(page, mode) { var query = new URLSearchParams({ post_slug: postSlug, page: String(page), per_page: String(perPage), }); var response = await fetch('/api/post-comments?' + query.toString(), { method: 'GET', headers: { 'Accept': 'application/json' } }); var data = await response.json().catch(function() { return {}; }); if (!response.ok || data.ok === false) { throw new Error((data && data.message) || 'Cannot load comments.'); } var pagination = data.pagination || {}; currentPage = Number(pagination.current_page || 1); lastPage = Number(pagination.last_page || 1); totalCountEl.textContent = String((data.post && data.post.comment_count) || pagination.total || 0); loadMoreBtn.classList.toggle('comment-box__hidden', currentPage >= lastPage); renderComments(data.comments || [], mode); } async function postComment(content, parentId, feedbackTarget, submitTarget) { var authorName = ensureName(false); if (!authorName) { var forced = ensureName(true); if (!forced) { throw new Error('Please enter your name first.'); } authorName = forced; } var payload = { post_slug: postSlug, post_url: window.location.href, author_name: authorName, content: content, }; if (parentId > 0) { payload.parent_id = parentId; } if (submitTarget) submitTarget.disabled = true; if (feedbackTarget) { feedbackTarget.textContent = 'Submitting...'; feedbackTarget.style.color = ''; } try { var response = await fetch('/api/post-comments', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify(payload) }); var data = await response.json().catch(function() { return {}; }); if (!response.ok || data.ok === false) { throw new Error((data && data.message) || 'Cannot submit comment.'); } await loadComments(1, 'replace'); return true; } finally { if (submitTarget) submitTarget.disabled = false; } } form.addEventListener('submit', async function(event) { event.preventDefault(); var content = String(contentEl.value || '').trim(); if (!content) { setFeedback('Please enter comment content.', true); return; } submitBtn.disabled = true; setFeedback('Submitting...'); try { await postComment(content, 0); contentEl.value = ''; setFeedback('Comment submitted.'); } catch (error) { setFeedback(error.message || 'Cannot submit comment.', true); } finally { submitBtn.disabled = false; } }); listEl.addEventListener('click', function(event) { var replyBtn = event.target.closest('.comment-item__reply-btn'); if (replyBtn) { var row = replyBtn.closest('.comment-item'); if (!row) return; var formEl = row.querySelector('.comment-item__reply-form'); if (!formEl) return; listEl.querySelectorAll('.comment-item__reply-form').forEach(function(f) { if (f !== formEl) f.classList.add('comment-box__hidden'); }); formEl.classList.remove('comment-box__hidden'); var input = formEl.querySelector('textarea'); if (input) input.focus(); return; } var cancelBtn = event.target.closest('.comment-item__reply-cancel'); if (cancelBtn) { var rf = cancelBtn.closest('.comment-item__reply-form'); if (!rf) return; rf.classList.add('comment-box__hidden'); var rInput = rf.querySelector('textarea'); var rFeedback = rf.querySelector('.comment-item__reply-feedback'); if (rInput) rInput.value = ''; if (rFeedback) rFeedback.textContent = ''; } }); listEl.addEventListener('submit', async function(event) { var replyForm = event.target.closest('.comment-item__reply-form'); if (!replyForm) return; event.preventDefault(); var row = replyForm.closest('.comment-item'); if (!row) return; var parentId = Number(row.getAttribute('data-comment-id') || 0); var input = replyForm.querySelector('textarea'); var submit = replyForm.querySelector('.comment-item__reply-submit'); var feedback = replyForm.querySelector('.comment-item__reply-feedback'); var replyText = String((input && input.value) || '').trim(); if (!replyText) { if (feedback) { feedback.textContent = 'Please enter reply content.'; feedback.style.color = '#dc2626'; } return; } try { await postComment(replyText, parentId, feedback, submit); // setFeedback('Reply submitted.'); } catch (error) { if (feedback) { feedback.textContent = error.message || 'Cannot submit reply.'; feedback.style.color = '#dc2626'; } } }); changeNameBtn.addEventListener('click', function() { ensureName(true); }); loadMoreBtn.addEventListener('click', async function() { if (currentPage >= lastPage) return; loadMoreBtn.disabled = true; try { await loadComments(currentPage + 1, 'prepend'); } catch (error) { setFeedback(error.message || 'Cannot load more comments.', true); } finally { loadMoreBtn.disabled = false; } }); ensureName(false); loadComments(1, 'replace').catch(function(error) { setFeedback(error.message || 'Cannot load comments.', true); }); })();