c94e8f0acb
This pull request completely overhauls the Creator editor flow, resolves the editor duplication race condition, aligns layout/styling themes in light and dark mode, and adds Docker staging setups. ### Key Changes 1. **Creator Flow Polish**: Redesigned the editor canvas to prevent double scrolling by delegating overflow to the editor canvas layer, updated styles to a premium aesthetic. 2. **Race Condition Prevention**: Resolved Crepe editor duplication when loading or switching chapters by tracking state via shared window maps (`window.editorCache`, `window.editorStates`) and checking `_lastInitializedEditorId` synchronously in Blazor. 3. **Theme Synchronization**: Integrated explicit theme initialization (`ThemeService.InitializeAsync()`) and anchored CSS isolation selectors to correctly sync with Light (Soft Sepia) and Deep Dark theme preferences. 4. **Staging Automation**: Created staging docker configurations with `--nexus-only` flag to allow iterative development without resetting PG/Neo4j database containers. --------- Co-authored-by: Marek Jasiński <jasins.marek@gmail.com> Reviewed-on: #83 Co-authored-by: Antigravity <antigravity@google.com> Co-committed-by: Antigravity <antigravity@google.com>
34 lines
967 B
C#
34 lines
967 B
C#
namespace NexusReader.Application.DTOs.Media;
|
|
|
|
// Note: These DTOs are registered in AppJsonContext.cs for JSON source generation.
|
|
|
|
/// <summary>
|
|
/// Request DTO for chapter validation/sanitization.
|
|
/// </summary>
|
|
public record ValidateChapterRequest(string Content);
|
|
|
|
/// <summary>
|
|
/// Response DTO containing sanitized chapter content.
|
|
/// </summary>
|
|
public record ValidateChapterResponse(string SanitizedContent);
|
|
|
|
/// <summary>
|
|
/// Response DTO containing the uploaded media file URL.
|
|
/// </summary>
|
|
public record UploadResultDto(string Url);
|
|
|
|
/// <summary>
|
|
/// Represents a structured JSON backup envelope stored in LocalStorage.
|
|
/// </summary>
|
|
public class LocalBackupEnvelope
|
|
{
|
|
public Guid ChapterId { get; set; }
|
|
public DateTime Timestamp { get; set; }
|
|
public string MarkdownContent { get; set; } = string.Empty;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Request DTO for chapter autosaving.
|
|
/// </summary>
|
|
public record AutosaveChapterRequest(string MarkdownContent);
|