diff --git a/resources/lang/en.json b/resources/lang/en.json index 7df65f56e8..931304a3ea 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -919,6 +919,9 @@ "select_skin": "Select Skin", "selected": "selected" }, + "cosmetics": { + "artist_label": "Artist:" + }, "flag_input": { "title": "Select Flag", "button_title": "Pick a flag!", diff --git a/src/client/FlagInputModal.ts b/src/client/FlagInputModal.ts index c51fc2036e..950b9afcd4 100644 --- a/src/client/FlagInputModal.ts +++ b/src/client/FlagInputModal.ts @@ -39,7 +39,12 @@ export class FlagInputModal extends BaseModal { .map( ([key, flag]) => html` diff --git a/src/client/Store.ts b/src/client/Store.ts index 29c23d54f5..5cf67cdc86 100644 --- a/src/client/Store.ts +++ b/src/client/Store.ts @@ -188,6 +188,7 @@ export class StoreModal extends BaseModal { name: flag.name, url: flag.url, product: flag.product, + artist: flag.artist, }} .selected=${selectedFlag === `flag:${key}`} .requiresPurchase=${rel === "purchasable"} diff --git a/src/client/components/ArtistInfo.ts b/src/client/components/ArtistInfo.ts new file mode 100644 index 0000000000..3a55856aa1 --- /dev/null +++ b/src/client/components/ArtistInfo.ts @@ -0,0 +1,37 @@ +import { html, LitElement, nothing } from "lit"; +import { customElement, property } from "lit/decorators.js"; +import { translateText } from "../Utils"; + +@customElement("artist-info") +export class ArtistInfo extends LitElement { + @property({ type: String }) + artist?: string; + + createRenderRoot() { + return this; + } + + render() { + if (!this.artist) { + return nothing; + } + + return html` +
e.stopPropagation()} + > +
+ ? +
+ +
+ `; + } +} diff --git a/src/client/components/FlagButton.ts b/src/client/components/FlagButton.ts index f2575dad5e..938087ef25 100644 --- a/src/client/components/FlagButton.ts +++ b/src/client/components/FlagButton.ts @@ -2,6 +2,7 @@ import { html, LitElement } from "lit"; import { customElement, property } from "lit/decorators.js"; import { Product } from "../../core/CosmeticSchemas"; import { translateCosmetic } from "../Cosmetics"; +import "./ArtistInfo"; import "./PurchaseButton"; export interface FlagItem { @@ -9,6 +10,7 @@ export interface FlagItem { name: string; url: string; product?: Product | null; + artist?: string; } @customElement("flag-button") @@ -39,7 +41,7 @@ export class FlagButton extends LitElement { render() { return html`
-
-
- ${translateCosmetic("flags", this.flag.name)} -
-
+ +
+ ${translateCosmetic("flags", this.flag.name)}
+