refactor(core): move app para src e padroniza estrutura

This commit is contained in:
Felipe Coutinho
2026-03-12 19:22:50 +00:00
parent d92e70f1b9
commit b0fbb1062a
567 changed files with 8981 additions and 5014 deletions

View File

@@ -0,0 +1,65 @@
"use client";
import { useMemo, useState } from "react";
import { mapDashboardNotesToNotes } from "@/features/dashboard/notes-mappers";
import type { DashboardNote } from "@/features/dashboard/notes-queries";
import type { Note } from "@/features/notes/components/types";
export type NotesWidgetController = {
mappedNotes: Note[];
noteToEdit: Note | null;
isEditOpen: boolean;
noteDetails: Note | null;
isDetailsOpen: boolean;
openEdit: (note: Note) => void;
openDetails: (note: Note) => void;
handleEditOpenChange: (open: boolean) => void;
handleDetailsOpenChange: (open: boolean) => void;
};
export function useNotesWidgetController(
notes: DashboardNote[],
): NotesWidgetController {
const [noteToEdit, setNoteToEdit] = useState<Note | null>(null);
const [isEditOpen, setIsEditOpen] = useState(false);
const [noteDetails, setNoteDetails] = useState<Note | null>(null);
const [isDetailsOpen, setIsDetailsOpen] = useState(false);
const mappedNotes = useMemo(() => mapDashboardNotesToNotes(notes), [notes]);
const openEdit = (note: Note) => {
setNoteToEdit(note);
setIsEditOpen(true);
};
const openDetails = (note: Note) => {
setNoteDetails(note);
setIsDetailsOpen(true);
};
const handleEditOpenChange = (open: boolean) => {
setIsEditOpen(open);
if (!open) {
setNoteToEdit(null);
}
};
const handleDetailsOpenChange = (open: boolean) => {
setIsDetailsOpen(open);
if (!open) {
setNoteDetails(null);
}
};
return {
mappedNotes,
noteToEdit,
isEditOpen,
noteDetails,
isDetailsOpen,
openEdit,
openDetails,
handleEditOpenChange,
handleDetailsOpenChange,
};
}