Add additional rows to a table by importing
Currently it's already possible to import a CSV, JSON, etc file when creating a new table. The table will then initially be populated with the data of the file. The fields that are created will always be text column because the conversation can happen after to maximize compatibility.
It must also be possible to import from a file into an existing table. When the user clicks on the three dots next to the view name, there must also be an option named "Additional import". When clicked, a modal should become visible that looks a lot like the create new table modal. The same file import options should be visible. The only difference is that the rows will be added to the existing table instead of create a new one.
Mapping
After selecting the file, we can show the right sidebar with the mapping. Here we need to list all the columns of the data. In the screenshot, "Column 1", "Column 2", etc are the names of the columns. If the user has checked "First row is header", then the cells of the first row are the column names. If not, they must be named as "Column 1", "Column 2", etc.
Below every column name, a dropdown must be visible containing all fields in the table. This can be used to map a column to a field name. If "Column 1" is mapped to "First column", then the cell data of "Column 1" must end up in that there.
Preview
After choosing the file, a preview of the first rows must become visible. This preview will be different compared to a new table import because we need to show the existing fields, field types, and how the data will be transformed into that field type. If the data is not compatible with the field type, the user must be able to see that because the cell in the preview will be empty.
Importing
The rows of the provided import data must be added as new rows into the existing table, while respecting the mapping. Ideally we want to rows to become visible after the import job is successful. We also need to think about what to do when the table schema changes during import.