Files
igny8/master-docs/30-frontend/writer/CONTENT-EDITOR.md
IGNY8 VPS (Salman) 3cbed65601 revamps docs complete
2025-12-07 14:14:29 +00:00

2.3 KiB

Content Editor Page

Purpose

Display a single content record with full details for review/read-only inspection. Acts as the per-record viewer for content generated or managed by the Writer module.

Code Locations (exact paths)

  • Page: frontend/src/pages/Writer/ContentView.tsx
  • Template: frontend/src/templates/ContentViewTemplate (renders the actual layout/content fields)
  • API: frontend/src/services/api (fetchContentById)

High-Level Responsibilities

  • Fetch a specific content item by id from route param and render it via ContentViewTemplate.
  • Validate id parameter, handle not-found/error states, and provide back navigation to content list.

Detailed Behavior

  • Route: /writer/content/:id.
  • On mount: validates id is numeric; on invalid, shows toast and redirects to /writer/content.
  • Fetches content via fetchContentById(contentId); sets content state and clears loading.
  • Errors: shows toast (Failed to load content) and leaves content null.
  • Back action: onBack navigates to /writer/content.
  • Page metadata: sets document title/description via PageMeta.

Data Structures / Models Involved (no code)

  • Content DTO from writer API (includes title, body/html, status, external_url, etc.; structure defined server-side).

Execution Flow

  • useEffect → validate id → fetch content → update state → render template.
  • Template receives { content, loading, onBack }.

Cross-Module Interactions

  • Navigation back to writer drafts list; no direct cross-module calls.

State Transitions

  • loading toggles during fetch; content set on success; invalid id triggers navigation away.

Error Handling

  • Toast errors for missing/invalid id or fetch failure; console logs errors.

Tenancy Rules

  • Backend enforces account/site/sector scoping; client only supplies id from route.

Billing Rules (if applicable)

  • None within this view; generation/updates handled elsewhere.

Background Tasks / Schedulers (if applicable)

  • None.

Key Design Considerations

  • Strict id validation avoids bad requests.
  • Keeps view read-only; editing handled elsewhere (not in this component).

How Developers Should Work With This Module

  • If adding inline editing, extend ContentViewTemplate and add PATCH/PUT calls; keep id validation and error handling intact.