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

Support non-focusable disabled state. #228

Open
collincchoy opened this issue Oct 21, 2022 · 0 comments
Open

Support non-focusable disabled state. #228

collincchoy opened this issue Oct 21, 2022 · 0 comments
Labels
enhancement New feature or request

Comments

@collincchoy
Copy link

collincchoy commented Oct 21, 2022

Is your feature request related to a problem? Please describe.
I have the editor in a form which manages progression such that the user cannot skip fields - this is done mostly by disabling future inputs. With native input elements, we have a distinction between readonly and disabled wherein the latter prevents focus events from either a mouse or keyboard. With the Stacks-Editor, we have a readonly property which can be set using disable()/enable(). The mix in language is not only confusing but for my purposes above, readonly alone is insufficient to stop users from navigating through the editor's internal elements (i.e. the toolbar items) via TAB keyboard navigation (despite stopping focus via mouse).

Describe the solution you'd like
I would like to have a disabled state which holds similar behavior to a regular ol' <input disabled ... /> and is separate from the readonly state. Specifically, if disabled, the editor should not be focusable and when navigating through a parent form via TAB, the editor should be skipped.

I'd expect navigation behavior similar to native HTML inputs like attempting to tab through the following:

<input type="textarea" placeholder="normal">
<input type="textarea" readonly placeholder="readonly">
<input type="textarea" disabled placeholder="disabled">
<input type="textarea" placeholder="normal">

Proposal

StacksEditor {
  ...
  disabled: boolean = false,
  disable() { disabled = true },
  enable() { disabled = false },
  ...
}

readonly should change to have its own modifiers to avoid confusion.

Describe alternatives you've considered
Without this functionality inside of Stacks-Editor, I can add event listeners and hijack TAB-key events but that quickly snowballs to handling the editor in different states, moving between interactive elements inside of the editor like the toolbar and content, and then doing it all over again for SHIFT + TAB to go in reverse.

Additional context
Could be a breaking change in that ideally pre-existing disable()/enable() would be used to modify the disable state rather than readonly.

@collincchoy collincchoy added the enhancement New feature or request label Oct 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Todo
Development

No branches or pull requests

1 participant