fix: Add focus border to markdown toolbar buttons

This commit is contained in:
Jay Sitter 2023-07-04 00:53:31 -04:00
parent b1292b958a
commit 21c8b64cda
2 changed files with 34 additions and 29 deletions

View file

@ -32,7 +32,7 @@ export class EmojiPicker extends Component<EmojiPickerProps, EmojiPickerState> {
return ( return (
<span className="emoji-picker"> <span className="emoji-picker">
<button <button
className="btn btn-sm text-muted" className="btn btn-sm btn-link rounded-0 text-muted"
data-tippy-content={I18NextService.i18n.t("emoji")} data-tippy-content={I18NextService.i18n.t("emoji")}
aria-label={I18NextService.i18n.t("emoji")} aria-label={I18NextService.i18n.t("emoji")}
disabled={this.props.disabled} disabled={this.props.disabled}

View file

@ -170,34 +170,39 @@ export class MarkdownTextArea extends Component<
<EmojiPicker <EmojiPicker
onEmojiClick={e => this.handleEmoji(this, e)} onEmojiClick={e => this.handleEmoji(this, e)}
></EmojiPicker> ></EmojiPicker>
<form className="btn btn-sm text-muted fw-bold"> <label
<label htmlFor={`file-upload-${this.id}`}
htmlFor={`file-upload-${this.id}`} className={classNames("mb-0", {
// TODO: Fix this linting violation pointer: UserService.Instance.myUserInfo,
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex })}
tabIndex={0} data-tippy-content={I18NextService.i18n.t("upload_image")}
className={`mb-0 ${ >
UserService.Instance.myUserInfo && "pointer" {this.state.imageUploadStatus ? (
}`} <Spinner />
data-tippy-content={I18NextService.i18n.t("upload_image")} ) : (
> <button
{this.state.imageUploadStatus ? ( type="button"
<Spinner /> className="btn btn-sm btn-link rounded-0 text-muted mb-0"
) : ( onClick={() => {
document
.getElementById(`file-upload-${this.id}`)
?.click();
}}
>
<Icon icon="image" classes="icon-inline" /> <Icon icon="image" classes="icon-inline" />
)} </button>
</label> )}
<input </label>
id={`file-upload-${this.id}`} <input
type="file" id={`file-upload-${this.id}`}
accept="image/*,video/*" type="file"
name="file" accept="image/*,video/*"
className="d-none" name="file"
multiple className="d-none"
disabled={!UserService.Instance.myUserInfo} multiple
onChange={linkEvent(this, this.handleImageUpload)} disabled={!UserService.Instance.myUserInfo}
/> onChange={linkEvent(this, this.handleImageUpload)}
</form> />
{this.getFormatButton("header", this.handleInsertHeader)} {this.getFormatButton("header", this.handleInsertHeader)}
{this.getFormatButton( {this.getFormatButton(
"strikethrough", "strikethrough",
@ -348,7 +353,7 @@ export class MarkdownTextArea extends Component<
return ( return (
<button <button
className="btn btn-sm text-muted" className="btn btn-sm btn-link rounded-0 text-muted"
data-tippy-content={I18NextService.i18n.t(type)} data-tippy-content={I18NextService.i18n.t(type)}
aria-label={I18NextService.i18n.t(type)} aria-label={I18NextService.i18n.t(type)}
onClick={linkEvent(this, handleClick)} onClick={linkEvent(this, handleClick)}