Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(Editable): add Change only on submit example #1538

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions docs/content/components/editable.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,40 @@ Contains the cancel trigger of the editable component.

<!-- @include: @/meta/EditableCancelTrigger.md -->

## Examples

### Change only on submit

Use the `default-value` prop to define starting value and `@submit` emit to handle the submit event.
This is useful when you want to change the value only when the user submits the changes and have `auto-resize` working properly.

```vue line=12-13
<script setup lang="ts">
const defaultValue = ref('Default value')

function handleSubmit(label?: string) {
defaultValue.value = label
}
</script>

<template>
<template>
<EditableRoot
:default-value="defaultValue"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how about using :model-value instead of default-value? 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this will not work, I think because of useVModel inside Editable, we don't make copy to have ability to edit it, refer to stackblitz and video examples 🙌

Stackblitz: https://stackblitz.com/edit/adsgveqt?file=src%2FApp.vue

Video:

radix-editable-bug.mp4

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @hrynevychroman ! I understand the challenge here now. Looking at the example made me realized this might be a pattern that is quite unintuitive.

I would like to refactor EditableInput to only update modelValue when we commit it, this inline with the NumberFieldInput's behavior. So when user commit the changes, it updates v-model, if cancel, nothing happened. I believe this is something you are looking for right?

WDYT?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zernonia Yeah, this is something I'm looking for, I will take a look and open a PR when I have some free time, probably this Saturday 🙌

@submit="handleSubmit"
>
<EditableArea>
<EditablePreview />
<EditableInput />
</EditableArea>
<EditableEditTrigger />
<EditableSubmitTrigger />
<EditableCancelTrigger />
</EditableRoot>
</template>
</template>
```

## Accessibility

### Keyboard Interactions
Expand Down
Loading