diff --git a/src/renderer/components/QueryList/QueryList.tsx b/src/renderer/components/QueryList/QueryList.tsx index 95374f16..962bc94e 100644 --- a/src/renderer/components/QueryList/QueryList.tsx +++ b/src/renderer/components/QueryList/QueryList.tsx @@ -7,8 +7,8 @@ type Props = { readonly queries: QueryType[]; readonly selectedQueryId: number | null; readonly onAddQuery: () => void; - readonly onSelectQuery: (query: QueryType) => void; - readonly onDuplicateQuery: (query: QueryType) => void; + readonly onSelectQuery: (queryId: number) => void; + readonly onDuplicateQuery: (queryId: number) => void; readonly onDeleteQuery: (queryId: number) => void; }; @@ -24,21 +24,21 @@ const QueryList: React.FC = ({ const handleClickItem = onSelectQuery; - const handleContextMenu = (query: QueryType): void => { - onSelectQuery(query); + const handleContextMenu = (queryId: number): void => { + onSelectQuery(queryId); setImmediate(() => { const menu = remote.Menu.buildFromTemplate([ { label: "Duplicate", click: (): void => { - onDuplicateQuery(query); + onDuplicateQuery(queryId); }, }, { label: "Delete", click: (): void => { if (window.confirm("Are you sure?")) { - onDeleteQuery(query.id); + onDeleteQuery(queryId); } }, }, @@ -68,8 +68,8 @@ const QueryList: React.FC = ({
  • handleClickItem(query)} - onContextMenu={(): void => handleContextMenu(query)} + onClick={(): void => handleClickItem(query.id)} + onContextMenu={(): void => handleContextMenu(query.id)} >
    {query.title}
    diff --git a/src/renderer/pages/Query/QueryAction.ts b/src/renderer/pages/Query/QueryAction.ts index 6f991c0a..66f10bbb 100644 --- a/src/renderer/pages/Query/QueryAction.ts +++ b/src/renderer/pages/Query/QueryAction.ts @@ -44,14 +44,9 @@ const QueryAction = { ); }, - async selectQuery(query: QueryType): Promise { - const id = query.id; - if (query.body === undefined) { - const query = await Database.Query.find(id); - dispatch("selectQuery", { id, query }); - } else { - dispatch("selectQuery", { id, query: {} }); - } + async selectQuery(id: number): Promise { + const query = await Database.Query.find(id); + dispatch("selectQuery", { id, query }); }, async addNewQuery({ dataSourceId }): Promise { @@ -67,7 +62,8 @@ const QueryAction = { }); }, - async duplicateQuery(query: QueryType): Promise { + async duplicateQuery(id: number): Promise { + const query = await Database.Query.find(id); const newQuery = await Database.Query.create(query.title, query.dataSourceId, query.body); dispatch("addNewQuery", { query: newQuery }); },