diff --git a/manifest.json b/manifest.json index 492076b..d791201 100644 --- a/manifest.json +++ b/manifest.json @@ -50,11 +50,16 @@ "matches": [ "*://*.furbooru.org/images/*" ], + "exclude_matches": [ + "*://*.furbooru.org/images/new", + "*://*.furbooru.org/images/new?*" + ], "js": [ "src/content/tags-editor.ts" ], "css": [ - "src/styles/content/tags-editor.scss" + "src/styles/content/tags-editor.scss", + "src/styles/content/tag-presets.scss" ] }, { @@ -87,6 +92,17 @@ "css": [ "src/styles/content/posts.scss" ] + }, + { + "matches": [ + "*://*.furbooru.org/images/new" + ], + "js": [ + "src/content/upload.ts" + ], + "css": [ + "src/styles/content/tag-presets.scss" + ] } ], "action": { diff --git a/src/content/components/philomena/TagsForm.ts b/src/content/components/philomena/TagsForm.ts index 03095d5..923850b 100644 --- a/src/content/components/philomena/TagsForm.ts +++ b/src/content/components/philomena/TagsForm.ts @@ -24,7 +24,7 @@ export class TagsForm extends BaseComponent { this.#togglePresetsButton.textContent = 'Presets'; this.container - .querySelector('.fancy-tag-edit ~ button:last-of-type') + .querySelector(':is(.fancy-tag-edit, .fancy-tag-upload) ~ button:last-of-type') ?.after(this.#togglePresetsButton, this.#presetsList.container); this.#plainEditorTextarea = this.container.querySelector('textarea.tagsinput'); @@ -243,4 +243,14 @@ export class TagsForm extends BaseComponent { (tagEditor as TagsForm).refreshTagColors(); }); } + + static initializeUploadEditor() { + const uploadEditorContainer = document.querySelector('.field:has(.fancy-tag-upload)'); + + if (!uploadEditorContainer) { + return; + } + + new TagsForm(uploadEditorContainer).initialize(); + } } diff --git a/src/content/upload.ts b/src/content/upload.ts new file mode 100644 index 0000000..096430c --- /dev/null +++ b/src/content/upload.ts @@ -0,0 +1,3 @@ +import { TagsForm } from "$content/components/philomena/TagsForm"; + +TagsForm.initializeUploadEditor(); diff --git a/src/styles/content/tag-presets.scss b/src/styles/content/tag-presets.scss new file mode 100644 index 0000000..cf24ef6 --- /dev/null +++ b/src/styles/content/tag-presets.scss @@ -0,0 +1,16 @@ +@use '$styles/booru-vars'; + +.block.tag-presets { + .tag { + cursor: pointer; + + &.is-missing { + opacity: 0.5; + } + + &:hover { + color: booru-vars.$resolved-tag-background; + background: booru-vars.$resolved-tag-color; + } + } +} diff --git a/src/styles/content/tags-editor.scss b/src/styles/content/tags-editor.scss index 9eb4b5b..c371073 100644 --- a/src/styles/content/tags-editor.scss +++ b/src/styles/content/tags-editor.scss @@ -11,18 +11,3 @@ h2.tag-category-headline { bottom: calc(#{$base-margin-bottom} - #{booru-vars.$padding-small}); } } - -.block.tag-presets { - .tag { - cursor: pointer; - - &.is-missing { - opacity: 0.5; - } - - &:hover { - color: booru-vars.$resolved-tag-background; - background: booru-vars.$resolved-tag-color; - } - } -}