querymx / querym Goto Github PK
View Code? Open in Web Editor NEWQuerym is free, open-source and cross-platform MySQL and PostgreSQL GUI client.
Home Page: https://querym.net/
License: GNU General Public License v3.0
Querym is free, open-source and cross-platform MySQL and PostgreSQL GUI client.
Home Page: https://querym.net/
License: GNU General Public License v3.0
When I try to select a database, I'm getting a list of 'undefined'.
The issue is occurring in MySQLCommonInterface.ts , where the properties defined in the interface MySqlColumn
are in uppercase, while the corresponding data in the response is in lowercase. Due to case sensitivity, retrieving the property is returning 'undefined'
Our context menu is not smart enough to detected that it will get chopped off from the screen if user right click near the right edge of the screen.
Our context menu component is located here
https://github.com/invisal/query-master/blob/main/src/renderer/components/ContextMenu/index.tsx
We should detect if it is near the chopped off from screen, it should flip the direction.
When user type "=", if we detect that the field is the ENUM field, then it should provide the possible ENUM value.
We can resize all the header normally except the last header. It keep struck without ability to stop resize
Currently, our tab does is not draggable to re-arrange its position. We can make it draggable like in Visual Studio Code as attached video.
The tab component is located in this files.
https://github.com/invisal/query-master/blob/main/src/renderer/components/WindowTab/index.tsx
We can add drag functionality in this place. We can expose two more properties:
<WindowTab
onTabChanged={setTab}
draggable
/>
draggable
means that it is possible to drag tab. There are some places where we want the tab to stay in fixed position.onTabChanged
will change the tab states when drag is success.Currently, when we type
CREATE DATABASE foo;
The database keyword does not highlight as keyword. I believe we didn't config the editor properly to handle MySQL dialet
Currently, our modal is placed in the closest parent element. This is not ideal as the parent element style can affect the modal. We should render the modal inside the body as direct parent.
We can achieve this using createPortal. This will provide more consistence experience
Where to implement
https://github.com/invisal/query-master/blob/main/src/renderer/components/Modal/index.tsx
This is our modal code. You can make change here.
Please kindly select per row because If I want to know that value on which row
We can extend the OptimizedTable (https://github.com/invisal/query-master/blob/main/src/renderer/components/OptimizeTable/index.tsx) to support row selection.
We should expose two properties:
selectedRowsIndex
is an array of index of rows that has been selectedonSelectedRowsIndexChanged
will give the array of index when user interact with the table.How user interact with the table to change the row selection:
This will be a bit challenging to implement as there are many components at play here. But let try to understand on how it works. First there are 2 important components to understand.
We don't have row selection feature. We can either use cell selection as row selection or we can implement row selection (#10).
We also need to find a way to decide if the row can be deleted. The row can be deleted if and only if the result contains only one table. Query with INNER JOIN can contains 2 or more tables. It is not possible to remove if there are mixing of more than 1 table. The result must have PRIMARY KEY columns
QueryResultChangeProvider is just a context that wrap around ResultChangeCollector (https://github.com/invisal/query-master/blob/main/src/libs/ResultChangeCollector.ts). Currently, it only support recording which cell is being changed. We need to add ability to record which rows has been deleted.
When we commit, we will call getSqlPlanFromChange (https://github.com/invisal/query-master/blob/main/src/libs/GenerateSqlFromChanges.ts). This will prepare the plans from changes
Once we have the plan, we transform the plan into raw SQL using this function. https://github.com/invisal/query-master/blob/main/src/libs/GenerateSqlFromPlan.ts
If everything is correctly implemented, it should work. I believe we need to implement row selection first before we can continue this feature. I will write up how to implement the row selection shortly as well.
Currently, we support Ctrl + C
and Ctrl + V
for copy and paste when you focus on the table cell. This only works with Windows. For Mac, we should extend it to Command + C
and Command + V
Where to implement:
https://github.com/invisal/query-master/blob/main/src/renderer/screens/DatabaseScreen/QueryResultViewer/TableCell/TableEditableCell.tsx#L159
Context menu should support sub menu as following
<ContextMenu>
<ContextMenu.Item text='Menu without sub menu' />
<ContextMenu.Item text='Menu with'>
<ContextMenu.Item text='Submenu A' />
<ContextMenu.Item text='Submenu B' />
</ContextMenu.Item>
</ContextMenu>
With this implemented, it will give us more solid foundation.
https://github.com/invisal/query-master/blob/main/src/renderer/components/ContextMenu/index.tsx
Right now, it is auto update silently in the background. User has no control and what is the downloading progress.
How do I connect it with my database?
Using Mac with apple silicon chip.
When creating a new table, even if it runs successfully, it wont show up in the sidebar. If console.log(schema), it shows outdated schema without the new table that has just been created
We already have everything ready. For text box we can use our TextField component. It is good for anyone who want to pickup
Where to implement?
https://github.com/invisal/query-master/blob/main/src/renderer/components/DatabaseTable/DatabaseSelection.tsx
Hello @invisal. I believe React DevTool is an essential tool for development in our project. During the recent development, I have actually been adding the DevTool locally each time, can we add React DevTool to the project?
I tried electron-devtools-installer , which is already one of the project's dependencies and the recommended approach by the official documentation. However, this method didn't work: electron issue#36545
Currently, I'm using the workaround mentioned at react issue#25843, which involves temporarily downgrading my extension and loading it locally. However, before each commit, I need to revert the relevant changes.
Do you have any good solutions for this?
I am working on getting IV certificate for Windows to remove the warning sign when user download and install our application
tab
to the current line. The good new it works normally with Enter.I think F9 isnt the best hotkey to execute sql. Since many people use keyboard that cant easily type the F9 key. Maybe command/ctrl + enter
is a good hotkey?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.