diff options
| author | Jake Mannens <jake@asger.xyz> | 2023-08-20 22:59:09 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2023-08-20 22:59:09 +1000 |
| commit | c29bdd4a9ec782411f57e3c798e1bb01ca7d417d (patch) | |
| tree | fdb2046af3454a96a9733e156b9c86f538eea21c /Pages/Component | |
| parent | dfff79815acc86c02dd94716098d409d3fe46ab7 (diff) | |
NSFW tagging and tag editing
Diffstat (limited to 'Pages/Component')
| -rw-r--r-- | Pages/Component/MediaTagTable.razor | 7 | ||||
| -rw-r--r-- | Pages/Component/Switch.razor | 15 | ||||
| -rw-r--r-- | Pages/Component/Switch.razor.css | 24 |
3 files changed, 46 insertions, 0 deletions
diff --git a/Pages/Component/MediaTagTable.razor b/Pages/Component/MediaTagTable.razor index 278304d..ce42e48 100644 --- a/Pages/Component/MediaTagTable.razor +++ b/Pages/Component/MediaTagTable.razor @@ -28,6 +28,8 @@ <td> @if(!e.isImplicit) { <a href="javascript:;" @onclick=@(() => Delete(e.tagDef))>Delete</a> + } else { + <a href="javascript:;" @onclick=@(() => MakeExplicit(e.tagDef))>Make Explicit</a> } </td> </tr> @@ -60,4 +62,9 @@ .Where(e => e.tagDefinition.Source == TagSource.UserTag) .ToArray(); } + + private void MakeExplicit(TagDefinition tagDef) { + tagService.AddTag(Media, tagDef); + Refresh(); + } } diff --git a/Pages/Component/Switch.razor b/Pages/Component/Switch.razor new file mode 100644 index 0000000..ffb3543 --- /dev/null +++ b/Pages/Component/Switch.razor @@ -0,0 +1,15 @@ +<link rel="stylesheet" href="@(nameof(HyperBooru)).styles.css"/> + +<label> + <input + type="checkbox" + @onchange=@(e => OnToggle.InvokeAsync((e.Value as bool?) ?? false)) + hidden/> + <div class="switch-outer"> + <div class="switch-inner"/> + </div> +</label> + +@code { + public EventCallback<bool> OnToggle { get; set; } +} diff --git a/Pages/Component/Switch.razor.css b/Pages/Component/Switch.razor.css new file mode 100644 index 0000000..076b5d1 --- /dev/null +++ b/Pages/Component/Switch.razor.css @@ -0,0 +1,24 @@ +div.switch-outer { + background: var(--col-switch-bg); + border-radius: 20px; + border: 1px solid var(--col-switch-fg); + height: 20px; + transition: background 0.1s linear; + width: 40px; +} + +div.switch-inner { + background: var(--col-switch-fg); + border-radius: 20px; + height: 20px; + transition: margin-left 0.1s linear; + width: 20px; +} + +input:checked + div.switch-outer { + background: var(--col-switch-bg-hl); +} + +input:checked + div.switch-outer > div.switch-inner { + margin-left: 20px; +} |
