import { Menu } from "@islands/KMenu/types.ts"; import { Movie } from "@lib/movies.ts"; import { TMDBMovie } from "@lib/types.ts"; export const menus: Record = { main: { title: "Run", entries: [ { title: "Close menu", meta: "", cb: (state) => { state.visible.value = false; }, visible: () => false, }, { title: "Add Movie infos", meta: "", cb: async (state, context) => { state.activeState.value = "loading"; const movie = context as Movie; let query = movie.name; // if (movie.meta.author) { // query += movie.meta.author; // } const response = await fetch( `/api/tmdb/query?q=${encodeURIComponent(query)}`, ); console.log(response); const json = await response.json() as TMDBMovie[]; const menuID = `result/${movie.name}`; state.menus[menuID] = { title: "Select", entries: json.map((m) => ({ title: `${m.title} released ${m.release_date}`, cb: async () => { state.activeState.value = "loading"; const res = await fetch(`/api/tmdb/${m.id}`); const j = await res.json(); console.log("Selected", { movie, m, j }); state.visible.value = false; state.activeState.value = "normal"; }, })), }; console.log({ state }); state.activeMenu.value = menuID; state.activeState.value = "normal"; }, visible: () => false, }, { title: "Reload Page", meta: "", cb: () => { window.location.reload(); }, visible: () => false, }, ], }, };