Display the size of an attachment. Furthermore we also
display attachments total size in the ThreadMessage (Previously
this info was only dispalyed in composer)
Currently the button to open the file dialog in the attachment uploader
component has no type so as it is embedded into a form it is considered by
default as a submit button so each time the user clicks on this button the form
is submitted...
Currently, when the user press the enter anywhere in the message form, the file
dialog was opened that was weird. Furthermore, the attachment uploader was not
fully clickable to open the file dialog that was also weird. So we improve
all of that.
The `accesses` property into the Thread object was not propertly typed so we
update the serializer to fix the type by using dedicated sub serializers then we
run `make api-update` to update schema and api client.
Remove this deps as its features are not relevant for our use of Next.js,
it's bigger than react-i18next pacakge and it can create confusion
about the lib to use within the codebase.
Currently when the AttachmentsUploader field is mounted, the form is validated
that is weird. Before triggering onChange callback in this component we check
if attachments has changed (the field is marked as dirty).
Then we remove a deprecated props.
Currently if a draft is not yet created and the user quickly click
on the send button, two draft messages can be created. We disable the
send button until a draft message is created to prevent this behavior.
When several toasts were display and they have different width
a container with a white background can be visible.
Furthermore, we improve the way to bind actions in toast to improve
look'n feel.
Improve the description of the blob api endpoint then regenerate
schema and client api through `make api-update`. Furthermore we
also update FetchApi interface to manage boundary multipart content type
Currently, user was allowed to trash only threads, now it is able to trash
a single message. Furthermore to improve UX, when a thread or a message
is moved to trash, a toast is displayed and allow the user to undo its action.
Previously it wasn't possible to change the sender of a draft message.
Now we allow that and in this case we remove the current draft and create
a new one in the new mailbox. After that we redirect the user to the view of
the new draft to continue it's edit!
Previously selectedMailbox and selectedThread was managed through a state,
it appears this easier and safer to update them accordingly to the url params.
Frontend needs to be able to retrieve the thread_id of a message
so we tweak the MessageSerializer to bind this information. Then we run
`make api-update` to update api schema and client.
Added a new handleChange function to the SearchFiltersForm to update the
query on input change. Updated the SearchInput to handle search submissions
more effectively by allowing the closing of filters based on user interaction.
This improves the overall user experience when applying search filters.
Currently if a link does not open a new window, when the user clicks on the link
nothing happend. So we add `allow-popups` directive to allow this behavior.
Previously we expect the task retrieve endpoint could return a 404 when a task
does not exist but it is not possible (dce87f8) so instead we put a timeout to
stop to poll the task after a given delay.