From d2094c95415afafbe540596f68e02f9e6c9a3958 Mon Sep 17 00:00:00 2001 From: dmitriylaukhin Date: Wed, 1 Jul 2026 19:29:21 +0500 Subject: [PATCH] Make URLs in homework answers and feedback clickable Apply linkify() to student submission text (curator review page + student cabinet: reviewed/approved/pending) and to curator feedback text, so pasted links (e.g. Yandex.Disk) render as clickable anchors. Co-Authored-By: Claude Opus 4.8 --- src/app/curator/homework/[submissionId]/page.tsx | 3 ++- src/components/student/homework-section.tsx | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/app/curator/homework/[submissionId]/page.tsx b/src/app/curator/homework/[submissionId]/page.tsx index a2ed029..a70b38a 100644 --- a/src/app/curator/homework/[submissionId]/page.tsx +++ b/src/app/curator/homework/[submissionId]/page.tsx @@ -1,6 +1,7 @@ import { prisma } from "@/lib/prisma"; import { notFound } from "next/navigation"; import Link from "next/link"; +import { linkify } from "@/lib/linkify"; import { FeedbackForm } from "./feedback-form"; import { ContentTabs } from "./content-tabs"; import { DeleteSubmissionButton } from "./delete-button"; @@ -151,7 +152,7 @@ export default async function SubmissionPage({ params }: Props) { className="px-4 py-3 text-sm whitespace-pre-wrap" style={{ border: "2px solid var(--border)" }} > - {submission.text} + {linkify(submission.text)} ) : (

diff --git a/src/components/student/homework-section.tsx b/src/components/student/homework-section.tsx index 9a4e421..c7ee203 100644 --- a/src/components/student/homework-section.tsx +++ b/src/components/student/homework-section.tsx @@ -3,6 +3,7 @@ import { useState, useTransition } from "react"; import { submitHomework } from "@/lib/actions/student-actions"; import { AudioRecorder } from "@/components/curator/audio-recorder"; +import { linkify } from "@/lib/linkify"; interface HWFile { name: string; url: string; size: number } @@ -99,7 +100,7 @@ export function HomeworkSection({ homework, submission, slug, lessonId, allowAud

Ваш ответ

- {submission!.text || "—"} + {submission!.text ? linkify(submission!.text) : "—"}
{submission!.audioUrl && (
@@ -118,7 +119,7 @@ export function HomeworkSection({ homework, submission, slug, lessonId, allowAud {fb.curator.name} · {new Date(fb.createdAt).toLocaleDateString("ru-RU")}
-

{fb.text}

+

{linkify(fb.text)}

{fbFiles.length > 0 && (
{fbFiles.map((f) => ( @@ -155,7 +156,7 @@ export function HomeworkSection({ homework, submission, slug, lessonId, allowAud
{submission.text && (
- {submission.text} + {linkify(submission.text)}
)} {submission.audioUrl && ( @@ -197,7 +198,7 @@ export function HomeworkSection({ homework, submission, slug, lessonId, allowAud
{submission.text && (
- {submission.text} + {linkify(submission.text)}
)} {submission.audioUrl && (