# Autosave Component
Autosubmits forms for autosave functionality. Form submissions are debounced automatically with `1000ms` delay by default.
## Usage
```js
import { Autosave } from "tailwindcss-stimulus-components"
application.register('autosave', Autosave)
```
Then apply it to a form. This example will fire the save event on keyup inside the title field.
```erb
<%= form_with(model: post, data: { controller: "autosave", autosave_target: "form", action: "turbo:submit-end->autosave#success turbo:fetch-request-error->autosave#error" }) do |form| %>
<%= form.label :title %>
<%= form.text_field :title, class: 'form-control', data: { action: "keyup->autosave#save" } %>
<%= form.submit %>
<% end %>
```
The form is submitted using `form.requestSubmit()` and Turbo events are fired when the request is failed or completed. These different events are used to trigger the error or success messages accordingly.
## Handling the form submission server-side
Your server side should check the `params[:commit]` text (the value submitted by clicking the button) to see whether or not it should save as a draft or actually publish the record.
We recommend using a gem like Draftsman to help make the backend easier.