From a33b2e5a9aa04d3ae5daf418b51b13ce6d23d579 Mon Sep 17 00:00:00 2001 From: plebeius Date: Sun, 11 Jan 2026 12:28:21 +0100 Subject: [PATCH] feat(mod-queue): add number column, improve time display, and use edited comments - Add 'No.' column displaying post number - Change 'waiting' to 'submitted' column with formatted date + ago format - Show blinking relative time in parentheses for items awaiting approval - Use useEditedComment hook to display pending edits - Make time column width auto to fit content - Remove unused translation keys (waiting, mod_queue_alert_threshold_tip, view) - Add 'submitted' translation key in all languages --- public/translations/ar/default.json | 6 ++---- public/translations/bn/default.json | 6 ++---- public/translations/cs/default.json | 6 ++---- public/translations/da/default.json | 6 ++---- public/translations/de/default.json | 6 ++---- public/translations/el/default.json | 6 ++---- public/translations/en/default.json | 6 ++---- public/translations/es/default.json | 6 ++---- public/translations/fa/default.json | 6 ++---- public/translations/fi/default.json | 6 ++---- public/translations/fil/default.json | 6 ++---- public/translations/fr/default.json | 6 ++---- public/translations/he/default.json | 6 ++---- public/translations/hi/default.json | 6 ++---- public/translations/hu/default.json | 6 ++---- public/translations/id/default.json | 6 ++---- public/translations/it/default.json | 6 ++---- public/translations/ja/default.json | 6 ++---- public/translations/ko/default.json | 6 ++---- public/translations/mr/default.json | 6 ++---- public/translations/nl/default.json | 6 ++---- public/translations/no/default.json | 6 ++---- public/translations/pl/default.json | 6 ++---- public/translations/pt/default.json | 6 ++---- public/translations/ro/default.json | 6 ++---- public/translations/ru/default.json | 6 ++---- public/translations/sq/default.json | 6 ++---- public/translations/sv/default.json | 6 ++---- public/translations/te/default.json | 6 ++---- public/translations/th/default.json | 6 ++---- public/translations/tr/default.json | 6 ++---- public/translations/uk/default.json | 6 ++---- public/translations/ur/default.json | 6 ++---- public/translations/vi/default.json | 6 ++---- public/translations/zh/default.json | 6 ++---- src/views/mod-queue/mod-queue.module.css | 20 +++++++++++++++++--- src/views/mod-queue/mod-queue.tsx | 23 ++++++++++++++++++----- 37 files changed, 105 insertions(+), 148 deletions(-) diff --git a/public/translations/ar/default.json b/public/translations/ar/default.json index 6a7ea3f8..b0704353 100644 --- a/public/translations/ar/default.json +++ b/public/translations/ar/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "قائمة الانتظار فارغة", "approve": "الموافقة", "reject": "الرفض", - "waiting": "في الانتظار", "filter_by_board": "تصفية حسب اللوحة", "mod_queue_alert_threshold": "عتبة تنبيه قائمة انتظار الإشراف", - "mod_queue_alert_threshold_tip": "إظهار مؤشر أحمر وامض عندما تكون العناصر في الانتظار لأكثر من هذا الوقت", "no_content": "لا يوجد محتوى", - "view": "عرض", "excerpt": "مقتطف", "publishing": "نشر", "approved": "موافق عليه", - "rejected": "مرفوض" + "rejected": "مرفوض", + "submitted": "تم الإرسال" } diff --git a/public/translations/bn/default.json b/public/translations/bn/default.json index 6f93bda4..33fd5006 100644 --- a/public/translations/bn/default.json +++ b/public/translations/bn/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "সারি খালি", "approve": "অনুমোদন করুন", "reject": "প্রত্যাখ্যান করুন", - "waiting": "অপেক্ষা করছে", "filter_by_board": "বোর্ড অনুযায়ী ফিল্টার করুন", "mod_queue_alert_threshold": "মডারেশন সারি সতর্কতা থ্রেশহোল্ড", - "mod_queue_alert_threshold_tip": "আইটেমগুলি এই সময়ের চেয়ে বেশি অপেক্ষা করলে একটি ঝলমলে লাল সূচক দেখান", "no_content": "কোনো বিষয়বস্তু নেই", - "view": "দেখুন", "excerpt": "উদ্ধৃতি", "publishing": "প্রকাশনা", "approved": "অনুমোদিত", - "rejected": "প্রত্যাখ্যান" + "rejected": "প্রত্যাখ্যান", + "submitted": "জমা দেওয়া হয়েছে" } diff --git a/public/translations/cs/default.json b/public/translations/cs/default.json index fcf2b38d..15a5c1e4 100644 --- a/public/translations/cs/default.json +++ b/public/translations/cs/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Fronta je prázdná", "approve": "Schválit", "reject": "Odmítnout", - "waiting": "Čeká", "filter_by_board": "Filtrovat podle desky", "mod_queue_alert_threshold": "Práh upozornění fronty moderování", - "mod_queue_alert_threshold_tip": "Zobrazit blikající červený indikátor, když položky čekají déle než tento čas", "no_content": "Žádný obsah", - "view": "Zobrazit", "excerpt": "Výňatek", "publishing": "Publikování", "approved": "Schváleno", - "rejected": "Zamítnuto" + "rejected": "Zamítnuto", + "submitted": "Odesláno" } diff --git a/public/translations/da/default.json b/public/translations/da/default.json index 945407e6..13a7a3ec 100644 --- a/public/translations/da/default.json +++ b/public/translations/da/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Køen er tom", "approve": "Godkend", "reject": "Afvis", - "waiting": "Venter", "filter_by_board": "Filtrer efter tavle", "mod_queue_alert_threshold": "Tærskel for moderationskø-alarm", - "mod_queue_alert_threshold_tip": "Vis en blinkende rød indikator, når elementer venter længere end denne tid", "no_content": "Intet indhold", - "view": "Vis", "excerpt": "Uddrag", "publishing": "Udgivelse", "approved": "Godkendt", - "rejected": "Afvist" + "rejected": "Afvist", + "submitted": "Indsendt" } diff --git a/public/translations/de/default.json b/public/translations/de/default.json index 2d859e4c..ec349af1 100644 --- a/public/translations/de/default.json +++ b/public/translations/de/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Warteschlange ist leer", "approve": "Genehmigen", "reject": "Ablehnen", - "waiting": "Wartend", "filter_by_board": "Nach Forum filtern", "mod_queue_alert_threshold": "Schwellenwert für Moderations-Warteschlangen-Alarm", - "mod_queue_alert_threshold_tip": "Einen blinkenden roten Indikator anzeigen, wenn Elemente länger als diese Zeit warten", "no_content": "Kein Inhalt", - "view": "Anzeigen", "excerpt": "Auszug", "publishing": "Veröffentlichung", "approved": "Genehmigt", - "rejected": "Abgelehnt" + "rejected": "Abgelehnt", + "submitted": "Eingereicht" } diff --git a/public/translations/el/default.json b/public/translations/el/default.json index 8b19aae0..722cfb39 100644 --- a/public/translations/el/default.json +++ b/public/translations/el/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Η ουρά είναι άδεια", "approve": "Έγκριση", "reject": "Απόρριψη", - "waiting": "Αναμονή", "filter_by_board": "Φίλτρο ανά σανίδα", "mod_queue_alert_threshold": "Όριο ειδοποίησης ουράς συντονισμού", - "mod_queue_alert_threshold_tip": "Εμφάνιση αναβοσβήνοντος κόκκινου δείκτη όταν τα στοιχεία περιμένουν περισσότερο από αυτόν τον χρόνο", "no_content": "Χωρίς περιεχόμενο", - "view": "Προβολή", "excerpt": "Απόσπασμα", "publishing": "Δημοσίευση", "approved": "Εγκεκριμένο", - "rejected": "Απορρίφθηκε" + "rejected": "Απορρίφθηκε", + "submitted": "Υποβλήθηκε" } diff --git a/public/translations/en/default.json b/public/translations/en/default.json index cdca8677..e2e796e1 100644 --- a/public/translations/en/default.json +++ b/public/translations/en/default.json @@ -259,14 +259,12 @@ "queue_is_empty": "Queue is empty", "approve": "Approve", "reject": "Reject", - "waiting": "Waiting", "filter_by_board": "Filter by board", "mod_queue_alert_threshold": "Mod queue alert threshold", - "mod_queue_alert_threshold_tip": "Show a blinking red indicator when items are waiting for longer than this time", "no_content": "No content", - "view": "View", "excerpt": "Excerpt", "publishing": "Publishing", "approved": "Approved", - "rejected": "Rejected" + "rejected": "Rejected", + "submitted": "Submitted" } diff --git a/public/translations/es/default.json b/public/translations/es/default.json index edc2a26a..60109273 100644 --- a/public/translations/es/default.json +++ b/public/translations/es/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "La cola está vacía", "approve": "Aprobar", "reject": "Rechazar", - "waiting": "Esperando", "filter_by_board": "Filtrar por foro", "mod_queue_alert_threshold": "Umbral de alerta de cola de moderación", - "mod_queue_alert_threshold_tip": "Mostrar un indicador rojo parpadeante cuando los elementos están esperando más de este tiempo", "no_content": "Sin contenido", - "view": "Ver", "excerpt": "Extracto", "publishing": "Publicando", "approved": "Aprobado", - "rejected": "Rechazado" + "rejected": "Rechazado", + "submitted": "Enviado" } diff --git a/public/translations/fa/default.json b/public/translations/fa/default.json index 6e1f77ec..55cbf1cc 100644 --- a/public/translations/fa/default.json +++ b/public/translations/fa/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "صف خالی است", "approve": "تایید", "reject": "رد", - "waiting": "در انتظار", "filter_by_board": "فیلتر بر اساس تابلو", "mod_queue_alert_threshold": "آستانه هشدار صف انتظار نظارت", - "mod_queue_alert_threshold_tip": "نمایش نشانگر قرمز چشمک‌زن زمانی که موارد بیش از این زمان در انتظار هستند", "no_content": "بدون محتوا", - "view": "مشاهده", "excerpt": "گزیده", "publishing": "در حال انتشار", "approved": "تایید شده", - "rejected": "رد شده" + "rejected": "رد شده", + "submitted": "ارسال شده" } diff --git a/public/translations/fi/default.json b/public/translations/fi/default.json index d7fcafe1..6395386f 100644 --- a/public/translations/fi/default.json +++ b/public/translations/fi/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Jono on tyhjä", "approve": "Hyväksy", "reject": "Hylkää", - "waiting": "Odottaa", "filter_by_board": "Suodata taulun mukaan", "mod_queue_alert_threshold": "Moderaatiojonon hälytyskynnys", - "mod_queue_alert_threshold_tip": "Näytä vilkkuva punainen indikaattori, kun kohteet odottavat pidempään kuin tämä aika", "no_content": "Ei sisältöä", - "view": "Näytä", "excerpt": "Ote", "publishing": "Julkaiseminen", "approved": "Hyväksytty", - "rejected": "Hylätty" + "rejected": "Hylätty", + "submitted": "Lähetetty" } diff --git a/public/translations/fil/default.json b/public/translations/fil/default.json index e581593c..d6042440 100644 --- a/public/translations/fil/default.json +++ b/public/translations/fil/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Walang laman ang queue", "approve": "Aprubahan", "reject": "Tanggihan", - "waiting": "Naghihintay", "filter_by_board": "I-filter ayon sa board", "mod_queue_alert_threshold": "Moderasyon queue alert threshold", - "mod_queue_alert_threshold_tip": "Magpakita ng kumikislap na pulang indicator kapag ang mga item ay naghihintay nang mas mahaba kaysa sa oras na ito", "no_content": "Walang nilalaman", - "view": "Tingnan", "excerpt": "Sipi", "publishing": "Pag-publish", "approved": "Naaprubado", - "rejected": "Tinanggihan" + "rejected": "Tinanggihan", + "submitted": "Isinumite" } diff --git a/public/translations/fr/default.json b/public/translations/fr/default.json index f33732de..4b9f808d 100644 --- a/public/translations/fr/default.json +++ b/public/translations/fr/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "La file est vide", "approve": "Approuver", "reject": "Rejeter", - "waiting": "En attente", "filter_by_board": "Filtrer par forum", "mod_queue_alert_threshold": "Seuil d'alerte de la file de modération", - "mod_queue_alert_threshold_tip": "Afficher un indicateur rouge clignotant lorsque les éléments attendent plus longtemps que ce temps", "no_content": "Aucun contenu", - "view": "Voir", "excerpt": "Extrait", "publishing": "Publication", "approved": "Approuvé", - "rejected": "Rejeté" + "rejected": "Rejeté", + "submitted": "Soumis" } diff --git a/public/translations/he/default.json b/public/translations/he/default.json index 47cc9019..73c002bd 100644 --- a/public/translations/he/default.json +++ b/public/translations/he/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "התור ריק", "approve": "אשר", "reject": "דחה", - "waiting": "ממתין", "filter_by_board": "סנן לפי לוח", "mod_queue_alert_threshold": "סף התרעה של תור ניהול", - "mod_queue_alert_threshold_tip": "הצג אינדיקטור אדום מהבהב כאשר פריטים ממתינים יותר מזמן זה", "no_content": "אין תוכן", - "view": "הצג", "excerpt": "תקציר", "publishing": "מפרסם", "approved": "אושר", - "rejected": "נדחה" + "rejected": "נדחה", + "submitted": "נשלח" } diff --git a/public/translations/hi/default.json b/public/translations/hi/default.json index b65da0c8..0cc3de71 100644 --- a/public/translations/hi/default.json +++ b/public/translations/hi/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "कतार खाली है", "approve": "अनुमोदन करें", "reject": "अस्वीकार करें", - "waiting": "प्रतीक्षा कर रहा है", "filter_by_board": "बोर्ड के अनुसार फ़िल्टर करें", "mod_queue_alert_threshold": "मॉडरेटर कतार सतर्कता सीमा", - "mod_queue_alert_threshold_tip": "जब आइटम इस समय से अधिक समय तक प्रतीक्षा कर रहे हों तो एक चमकता हुआ लाल संकेतक दिखाएं", "no_content": "कोई सामग्री नहीं", - "view": "देखें", "excerpt": "अंश", "publishing": "प्रकाशन", "approved": "अनुमोदित", - "rejected": "अस्वीकृत" + "rejected": "अस्वीकृत", + "submitted": "सबमिट किया गया" } diff --git a/public/translations/hu/default.json b/public/translations/hu/default.json index 095370a2..515f66b1 100644 --- a/public/translations/hu/default.json +++ b/public/translations/hu/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "A sor üres", "approve": "Jóváhagyás", "reject": "Elutasítás", - "waiting": "Várakozás", "filter_by_board": "Szűrés tábla szerint", "mod_queue_alert_threshold": "Moderációs sor riasztási küszöb", - "mod_queue_alert_threshold_tip": "Villogó piros jelző megjelenítése, amikor az elemek ennél hosszabb ideig várakoznak", "no_content": "Nincs tartalom", - "view": "Megtekintés", "excerpt": "Kivonat", "publishing": "Közzététel", "approved": "Jóváhagyva", - "rejected": "Elutasítva" + "rejected": "Elutasítva", + "submitted": "Beküldve" } diff --git a/public/translations/id/default.json b/public/translations/id/default.json index cfbdd318..1ae29d18 100644 --- a/public/translations/id/default.json +++ b/public/translations/id/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Antrian kosong", "approve": "Setujui", "reject": "Tolak", - "waiting": "Menunggu", "filter_by_board": "Filter berdasarkan papan", "mod_queue_alert_threshold": "Ambang peringatan antrian moderasi", - "mod_queue_alert_threshold_tip": "Tampilkan indikator merah berkedip ketika item menunggu lebih lama dari waktu ini", "no_content": "Tidak ada konten", - "view": "Lihat", "excerpt": "Kutipan", "publishing": "Menerbitkan", "approved": "Disetujui", - "rejected": "Ditolak" + "rejected": "Ditolak", + "submitted": "Dikirim" } diff --git a/public/translations/it/default.json b/public/translations/it/default.json index 3c17433a..92727aee 100644 --- a/public/translations/it/default.json +++ b/public/translations/it/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "La coda è vuota", "approve": "Approva", "reject": "Rifiuta", - "waiting": "In attesa", "filter_by_board": "Filtra per board", "mod_queue_alert_threshold": "Soglia di allerta coda moderazione", - "mod_queue_alert_threshold_tip": "Mostra un indicatore rosso lampeggiante quando gli elementi attendono più di questo tempo", "no_content": "Nessun contenuto", - "view": "Visualizza", "excerpt": "Estratto", "publishing": "Pubblicazione", "approved": "Approvato", - "rejected": "Rifiutato" + "rejected": "Rifiutato", + "submitted": "Inviato" } diff --git a/public/translations/ja/default.json b/public/translations/ja/default.json index 46eeb246..96ed2e04 100644 --- a/public/translations/ja/default.json +++ b/public/translations/ja/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "キューは空です", "approve": "承認", "reject": "拒否", - "waiting": "待機中", "filter_by_board": "ボードでフィルター", "mod_queue_alert_threshold": "モデレーションキューのアラート閾値", - "mod_queue_alert_threshold_tip": "アイテムがこの時間より長く待機している場合、点滅する赤いインジケーターを表示", "no_content": "コンテンツなし", - "view": "表示", "excerpt": "抜粋", "publishing": "公開中", "approved": "承認済み", - "rejected": "却下" + "rejected": "却下", + "submitted": "送信済み" } diff --git a/public/translations/ko/default.json b/public/translations/ko/default.json index 7ce2a231..b2d6efd5 100644 --- a/public/translations/ko/default.json +++ b/public/translations/ko/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "대기열이 비어 있습니다", "approve": "승인", "reject": "거부", - "waiting": "대기 중", "filter_by_board": "게시판별 필터", "mod_queue_alert_threshold": "관리자 대기열 알림 임계값", - "mod_queue_alert_threshold_tip": "항목이 이 시간보다 오래 대기 중일 때 깜빡이는 빨간색 표시기 표시", "no_content": "콘텐츠 없음", - "view": "보기", "excerpt": "요약", "publishing": "게시 중", "approved": "승인됨", - "rejected": "거부됨" + "rejected": "거부됨", + "submitted": "제출됨" } diff --git a/public/translations/mr/default.json b/public/translations/mr/default.json index 6b7c50b4..53a10262 100644 --- a/public/translations/mr/default.json +++ b/public/translations/mr/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "रांग रिकामी आहे", "approve": "मंजूर करा", "reject": "नकार द्या", - "waiting": "प्रतीक्षा करत आहे", "filter_by_board": "बोर्डनुसार फिल्टर करा", "mod_queue_alert_threshold": "मॉडरेशन रांग सतर्कता मर्यादा", - "mod_queue_alert_threshold_tip": "जेव्हा आयटम या वेळेपेक्षा जास्त वेळ प्रतीक्षा करत असतात तेव्हा एक चमकणारा लाल सूचक दाखवा", "no_content": "सामग्री नाही", - "view": "पहा", "excerpt": "उतारा", "publishing": "प्रकाशन करत आहे", "approved": "मंजूर", - "rejected": "नाकारले" + "rejected": "नाकारले", + "submitted": "सबमिट केले" } diff --git a/public/translations/nl/default.json b/public/translations/nl/default.json index 12966192..41add34d 100644 --- a/public/translations/nl/default.json +++ b/public/translations/nl/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Wachtrij is leeg", "approve": "Goedkeuren", "reject": "Afwijzen", - "waiting": "Wachten", "filter_by_board": "Filteren op bord", "mod_queue_alert_threshold": "Drempelwaarde voor moderatiewachtrijwaarschuwing", - "mod_queue_alert_threshold_tip": "Toon een knipperende rode indicator wanneer items langer dan deze tijd wachten", "no_content": "Geen inhoud", - "view": "Bekijken", "excerpt": "Uittreksel", "publishing": "Publiceren", "approved": "Goedgekeurd", - "rejected": "Afgewezen" + "rejected": "Afgewezen", + "submitted": "Ingediend" } diff --git a/public/translations/no/default.json b/public/translations/no/default.json index 243e4a67..a1e606ca 100644 --- a/public/translations/no/default.json +++ b/public/translations/no/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Køen er tom", "approve": "Godkjenn", "reject": "Avvis", - "waiting": "Venter", "filter_by_board": "Filtrer etter tavle", "mod_queue_alert_threshold": "Terskel for modereringskø-varsel", - "mod_queue_alert_threshold_tip": "Vis en blinkende rød indikator når elementer venter lenger enn denne tiden", "no_content": "Ingen innhold", - "view": "Vis", "excerpt": "Utdrag", "publishing": "Publisering", "approved": "Godkjent", - "rejected": "Avslått" + "rejected": "Avslått", + "submitted": "Sendt inn" } diff --git a/public/translations/pl/default.json b/public/translations/pl/default.json index fd21cf92..3af23df6 100644 --- a/public/translations/pl/default.json +++ b/public/translations/pl/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Kolejka jest pusta", "approve": "Zatwierdź", "reject": "Odrzuć", - "waiting": "Oczekiwanie", "filter_by_board": "Filtruj według tablicy", "mod_queue_alert_threshold": "Próg alertu kolejki moderacji", - "mod_queue_alert_threshold_tip": "Pokaż migający czerwony wskaźnik, gdy elementy czekają dłużej niż ten czas", "no_content": "Brak zawartości", - "view": "Zobacz", "excerpt": "Fragment", "publishing": "Publikowanie", "approved": "Zatwierdzone", - "rejected": "Odrzucone" + "rejected": "Odrzucone", + "submitted": "Przesłane" } diff --git a/public/translations/pt/default.json b/public/translations/pt/default.json index fd49c8cd..0099a961 100644 --- a/public/translations/pt/default.json +++ b/public/translations/pt/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "A fila está vazia", "approve": "Aprovar", "reject": "Rejeitar", - "waiting": "Aguardando", "filter_by_board": "Filtrar por quadro", "mod_queue_alert_threshold": "Limite de alerta da fila de moderação", - "mod_queue_alert_threshold_tip": "Mostrar um indicador vermelho piscante quando os itens estão aguardando por mais tempo que este tempo", "no_content": "Sem conteúdo", - "view": "Ver", "excerpt": "Trecho", "publishing": "Publicando", "approved": "Aprovado", - "rejected": "Rejeitado" + "rejected": "Rejeitado", + "submitted": "Enviado" } diff --git a/public/translations/ro/default.json b/public/translations/ro/default.json index 5bd37255..6e4c0ed8 100644 --- a/public/translations/ro/default.json +++ b/public/translations/ro/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Coada este goală", "approve": "Aprobă", "reject": "Respinge", - "waiting": "Așteaptă", "filter_by_board": "Filtrează după panou", "mod_queue_alert_threshold": "Prag de alertă pentru coada de moderare", - "mod_queue_alert_threshold_tip": "Afișează un indicator roșu intermitent când elementele așteaptă mai mult decât acest timp", "no_content": "Fără conținut", - "view": "Vizualizează", "excerpt": "Fragment", "publishing": "Publicare", "approved": "Aprobat", - "rejected": "Respins" + "rejected": "Respins", + "submitted": "Trimis" } diff --git a/public/translations/ru/default.json b/public/translations/ru/default.json index 031aa2a8..7e812324 100644 --- a/public/translations/ru/default.json +++ b/public/translations/ru/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Очередь пуста", "approve": "Одобрить", "reject": "Отклонить", - "waiting": "Ожидание", "filter_by_board": "Фильтр по доске", "mod_queue_alert_threshold": "Порог предупреждения очереди модерации", - "mod_queue_alert_threshold_tip": "Показывать мигающий красный индикатор, когда элементы ждут дольше этого времени", "no_content": "Нет содержимого", - "view": "Просмотр", "excerpt": "Выдержка", "publishing": "Публикация", "approved": "Одобрено", - "rejected": "Отклонено" + "rejected": "Отклонено", + "submitted": "Отправлено" } diff --git a/public/translations/sq/default.json b/public/translations/sq/default.json index 9fd00101..a07058c3 100644 --- a/public/translations/sq/default.json +++ b/public/translations/sq/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Radha është e zbrazët", "approve": "Aprovo", "reject": "Refuzo", - "waiting": "Duke pritur", "filter_by_board": "Filtro sipas tabelës", "mod_queue_alert_threshold": "Pragu i alarmit të radhës së moderimit", - "mod_queue_alert_threshold_tip": "Shfaq një tregues të kuq që blinkon kur elementët po presin më shumë se kjo kohë", "no_content": "Pa përmbajtje", - "view": "Shiko", "excerpt": "Fragment", "publishing": "Publikimi", "approved": "Aprovuar", - "rejected": "Refuzuar" + "rejected": "Refuzuar", + "submitted": "Dërguar" } diff --git a/public/translations/sv/default.json b/public/translations/sv/default.json index 85898235..0ed838a1 100644 --- a/public/translations/sv/default.json +++ b/public/translations/sv/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Kön är tom", "approve": "Godkänn", "reject": "Avvisa", - "waiting": "Väntar", "filter_by_board": "Filtrera efter tavla", "mod_queue_alert_threshold": "Tröskelvärde för modereringskö-varning", - "mod_queue_alert_threshold_tip": "Visa en blinkande röd indikator när objekt väntar längre än denna tid", "no_content": "Inget innehåll", - "view": "Visa", "excerpt": "Utdrag", "publishing": "Publicerar", "approved": "Godkänd", - "rejected": "Avvisad" + "rejected": "Avvisad", + "submitted": "Inskickat" } diff --git a/public/translations/te/default.json b/public/translations/te/default.json index e62f80a5..c1fe0ed3 100644 --- a/public/translations/te/default.json +++ b/public/translations/te/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "క్యూ ఖాళీగా ఉంది", "approve": "ఆమోదించు", "reject": "తిరస్కరించు", - "waiting": "వేచి ఉంది", "filter_by_board": "బోర్డ్ ద్వారా ఫిల్టర్ చేయి", "mod_queue_alert_threshold": "మోడరేషన్ క్యూ హెచ్చరిక థ్రెషోల్డ్", - "mod_queue_alert_threshold_tip": "అంశాలు ఈ సమయం కంటే ఎక్కువ సమయం వేచి ఉన్నప్పుడు మెరిసే ఎరుపు సూచికను చూపించు", "no_content": "కంటెంట్ లేదు", - "view": "చూడు", "excerpt": "ఎక్సెర్ప్ట్", "publishing": "ప్రచురించడం", "approved": "అనుమోదించబడింది", - "rejected": "తిరస్కరించబడింది" + "rejected": "తిరస్కరించబడింది", + "submitted": "సమర్పించబడింది" } diff --git a/public/translations/th/default.json b/public/translations/th/default.json index c6eb7882..3223b9a6 100644 --- a/public/translations/th/default.json +++ b/public/translations/th/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "คิวว่างเปล่า", "approve": "อนุมัติ", "reject": "ปฏิเสธ", - "waiting": "กำลังรอ", "filter_by_board": "กรองตามบอร์ด", "mod_queue_alert_threshold": "เกณฑ์การแจ้งเตือนคิวผู้ดูแล", - "mod_queue_alert_threshold_tip": "แสดงตัวบ่งชี้สีแดงกะพริบเมื่อรายการรอเกินเวลานี้", "no_content": "ไม่มีเนื้อหา", - "view": "ดู", "excerpt": "ข้อความย่อ", "publishing": "กำลังเผยแพร่", "approved": "อนุมัติแล้ว", - "rejected": "ปฏิเสธ" + "rejected": "ปฏิเสธ", + "submitted": "ส่งแล้ว" } diff --git a/public/translations/tr/default.json b/public/translations/tr/default.json index e889b202..343d7c8a 100644 --- a/public/translations/tr/default.json +++ b/public/translations/tr/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Kuyruk boş", "approve": "Onayla", "reject": "Reddet", - "waiting": "Bekliyor", "filter_by_board": "Panoya göre filtrele", "mod_queue_alert_threshold": "Moderasyon kuyruğu uyarı eşiği", - "mod_queue_alert_threshold_tip": "Öğeler bu süreden daha uzun süre beklediğinde yanıp sönen kırmızı bir gösterge göster", "no_content": "İçerik yok", - "view": "Görüntüle", "excerpt": "Alıntı", "publishing": "Yayınlama", "approved": "Onaylandı", - "rejected": "Reddedildi" + "rejected": "Reddedildi", + "submitted": "Gönderildi" } diff --git a/public/translations/uk/default.json b/public/translations/uk/default.json index 91cb1023..87587355 100644 --- a/public/translations/uk/default.json +++ b/public/translations/uk/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Черга порожня", "approve": "Схвалити", "reject": "Відхилити", - "waiting": "Очікування", "filter_by_board": "Фільтр за дошкою", "mod_queue_alert_threshold": "Поріг попередження черги модерації", - "mod_queue_alert_threshold_tip": "Показувати мигаючий червоний індикатор, коли елементи чекають довше цього часу", "no_content": "Немає вмісту", - "view": "Перегляд", "excerpt": "Витяг", "publishing": "Публікація", "approved": "Схвалено", - "rejected": "Відхилено" + "rejected": "Відхилено", + "submitted": "Відправлено" } diff --git a/public/translations/ur/default.json b/public/translations/ur/default.json index 0234e35d..4e2f0134 100644 --- a/public/translations/ur/default.json +++ b/public/translations/ur/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "قطار خالی ہے", "approve": "منظور کریں", "reject": "مسترد کریں", - "waiting": "انتظار کر رہا ہے", "filter_by_board": "بورڈ کے لحاظ سے فلٹر کریں", "mod_queue_alert_threshold": "نگرانی کی قطار کی انتباہ کی حد", - "mod_queue_alert_threshold_tip": "جب آئٹمز اس وقت سے زیادہ انتظار کر رہے ہوں تو ایک ٹمٹمانے والا سرخ اشارہ دکھائیں", "no_content": "کوئی مواد نہیں", - "view": "دیکھیں", "excerpt": "اقتباس", "publishing": "اشاعت", "approved": "منظور شدہ", - "rejected": "مسترد" + "rejected": "مسترد", + "submitted": "جمع کرایا گیا" } diff --git a/public/translations/vi/default.json b/public/translations/vi/default.json index c3262da1..5fcc33ef 100644 --- a/public/translations/vi/default.json +++ b/public/translations/vi/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "Hàng đợi trống", "approve": "Phê duyệt", "reject": "Từ chối", - "waiting": "Đang chờ", "filter_by_board": "Lọc theo bảng", "mod_queue_alert_threshold": "Ngưỡng cảnh báo hàng đợi kiểm duyệt", - "mod_queue_alert_threshold_tip": "Hiển thị chỉ báo màu đỏ nhấp nháy khi các mục đang chờ lâu hơn thời gian này", "no_content": "Không có nội dung", - "view": "Xem", "excerpt": "Trích đoạn", "publishing": "Đang xuất bản", "approved": "Đã phê duyệt", - "rejected": "Đã từ chối" + "rejected": "Đã từ chối", + "submitted": "Đã gửi" } diff --git a/public/translations/zh/default.json b/public/translations/zh/default.json index 434572e8..e075ecd6 100644 --- a/public/translations/zh/default.json +++ b/public/translations/zh/default.json @@ -260,14 +260,12 @@ "queue_is_empty": "队列为空", "approve": "批准", "reject": "拒绝", - "waiting": "等待中", "filter_by_board": "按板块筛选", "mod_queue_alert_threshold": "审核队列警报阈值", - "mod_queue_alert_threshold_tip": "当项目等待时间超过此时长时显示闪烁的红色指示器", "no_content": "无内容", - "view": "查看", "excerpt": "摘要", "publishing": "发布中", "approved": "已批准", - "rejected": "已拒绝" + "rejected": "已拒绝", + "submitted": "已提交" } diff --git a/src/views/mod-queue/mod-queue.module.css b/src/views/mod-queue/mod-queue.module.css index 21c36e4c..4d8096a8 100644 --- a/src/views/mod-queue/mod-queue.module.css +++ b/src/views/mod-queue/mod-queue.module.css @@ -50,6 +50,12 @@ background: var(--mod-queue-header-background-color); font-weight: bold; font-size: 13px; + text-transform: capitalize; +} + +.numberHeader { + width: 60px; + flex-shrink: 0; } .boardHeader { @@ -62,9 +68,10 @@ } .timeHeader { - width: 80px; + width: auto; text-align: right; flex-shrink: 0; + white-space: nowrap; } .actionsHeader { @@ -98,6 +105,12 @@ background-color: var(--mod-queue-row-hover-background-color); } +.number { + width: 60px; + flex-shrink: 0; + font-weight: bold; +} + .board { width: 50px; flex-shrink: 0; @@ -123,13 +136,14 @@ } .time { - width: 80px; + width: auto; flex-shrink: 0; text-align: right; color: var(--mod-queue-time-color); + white-space: nowrap; } -.time.alert { +.time .alert { color: var(--mod-queue-alert-color); font-weight: bold; animation: blink 2s infinite; diff --git a/src/views/mod-queue/mod-queue.tsx b/src/views/mod-queue/mod-queue.tsx index c9a977d6..5fd480ed 100644 --- a/src/views/mod-queue/mod-queue.tsx +++ b/src/views/mod-queue/mod-queue.tsx @@ -1,7 +1,7 @@ import React, { useMemo, useState, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useParams, Link } from 'react-router-dom'; -import { useAccountSubplebbits, useFeed, Comment, usePublishCommentModeration } from '@plebbit/plebbit-react-hooks'; +import { useAccountSubplebbits, useFeed, Comment, usePublishCommentModeration, useEditedComment } from '@plebbit/plebbit-react-hooks'; import { Virtuoso } from 'react-virtuoso'; import { formatDistanceToNow } from 'date-fns'; import styles from './mod-queue.module.css'; @@ -13,6 +13,7 @@ import { getSubplebbitAddress, getBoardPath } from '../../lib/utils/route-utils' import { useDefaultSubplebbits, MultisubSubplebbit } from '../../hooks/use-default-subplebbits'; import { useBoardPath } from '../../hooks/use-resolved-subplebbit-address'; import { getHasThumbnail, getCommentMediaInfo } from '../../lib/utils/media-utils'; +import { getFormattedDate, getFormattedTimeAgo } from '../../lib/utils/time-utils'; import useFeedResetStore from '../../stores/use-feed-reset-store'; import useChallengesStore from '../../stores/use-challenges-store'; import { alertChallengeVerificationFailed } from '../../lib/utils/challenge-utils'; @@ -50,7 +51,11 @@ const ModQueueRow = ({ comment, showBoardColumn = false }: ModQueueRowProps) => const { alertThresholdHours } = useModQueueStore(); const [initiatedAction, setInitiatedAction] = useState(null); - const { content, title, timestamp, subplebbitAddress, cid, threadCid, link, thumbnailUrl, linkWidth, linkHeight, removed, approved } = comment; + // handle pending mod or author edit + const { editedComment } = useEditedComment({ comment }); + const displayComment = editedComment || comment; + + const { content, title, timestamp, subplebbitAddress, cid, threadCid, link, thumbnailUrl, linkWidth, linkHeight, removed, approved, number } = displayComment; // Check if already moderated (from previous session or API update) // Note: `approved` and `removed` are direct fields on the comment from CommentUpdate, @@ -180,6 +185,7 @@ const ModQueueRow = ({ comment, showBoardColumn = false }: ModQueueRowProps) => return (
+
{number ?? '—'}
{showBoardColumn &&
{boardPath ? /{boardPath}/ : }
}
{postUrl ? ( @@ -190,8 +196,14 @@ const ModQueueRow = ({ comment, showBoardColumn = false }: ModQueueRowProps) => {excerpt} )}
-
- {formatDistanceToNow(timestamp * 1000, { addSuffix: false })} +
+ {isAwaitingApproval ? ( + <> + {getFormattedDate(timestamp)} ({getFormattedTimeAgo(timestamp)}) + + ) : ( + getFormattedDate(timestamp) + )}
{renderActions()}
@@ -443,9 +455,10 @@ export const ModQueueView = ({ boardIdentifier: propBoardIdentifier }: ModQueueV ) : ( <>
+
No.
{showBoardColumn &&
{t('board')}
}
{t('excerpt')}
-
{t('waiting')}
+
{t('submitted')}
{t('actions')}