Work on Tour, step 2
This commit is contained in:
parent
e228862a3b
commit
433bc4a27d
11 changed files with 189 additions and 112 deletions
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
// P R O G R A M
|
// P R O G R A M
|
||||||
|
|
||||||
const relativeDate = (function (undefined) {
|
const relativeDate = (undefined => {
|
||||||
const SECOND = 1000;
|
const SECOND = 1000;
|
||||||
const MINUTE = 60 * SECOND;
|
const MINUTE = 60 * SECOND;
|
||||||
const HOUR = 60 * MINUTE;
|
const HOUR = 60 * MINUTE;
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -104,7 +104,7 @@ img {
|
||||||
top: -100%; left: 0;
|
top: -100%; left: 0;
|
||||||
|
|
||||||
background-color: $white;
|
background-color: $white;
|
||||||
background-image: url("../media/images/missing.png");
|
background-image: url("/assets/media/images/missing.png");
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
box-shadow: 0 0 1px 0 rgba($black, 0.3);
|
box-shadow: 0 0 1px 0 rgba($black, 0.3);
|
||||||
content: "";
|
content: "";
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
.hero {
|
.hero {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: $black;
|
background-color: $black;
|
||||||
background-image: url("../media/svg/text-logo--white.svg");
|
background-image: url("/assets/media/svg/text-logo--white.svg");
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -55,10 +55,6 @@
|
||||||
@media (max-width: 850px) {
|
@media (max-width: 850px) {
|
||||||
font-size: 1.25rem;
|
font-size: 1.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
// font-size: 3rem;
|
|
||||||
// margin-bottom: 1rem;
|
|
||||||
// text-transform: uppercase;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -300,23 +296,23 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(1) a::before {
|
&:nth-child(1) a::before {
|
||||||
background-image: url("../media/svg/flag.svg");
|
background-image: url("/assets/media/svg/flag.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(2) a::before {
|
&:nth-child(2) a::before {
|
||||||
background-image: url("../media/svg/keyboard.svg");
|
background-image: url("/assets/media/svg/keyboard.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(3) a::before {
|
&:nth-child(3) a::before {
|
||||||
background-image: url("../media/svg/anchor.svg");
|
background-image: url("/assets/media/svg/anchor.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(4) a::before {
|
&:nth-child(4) a::before {
|
||||||
background-image: url("../media/svg/chat.svg");
|
background-image: url("/assets/media/svg/chat.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(5) a::before {
|
&:nth-child(5) a::before {
|
||||||
background-image: url("../media/svg/monitor.svg");
|
background-image: url("/assets/media/svg/monitor.svg");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -353,15 +349,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(1) a::before {
|
&:nth-child(1) a::before {
|
||||||
background-image: url("../media/svg/discord.svg");
|
background-image: url("/assets/media/svg/discord.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(2) a::before {
|
&:nth-child(2) a::before {
|
||||||
background-image: url("../media/svg/reddit.svg");
|
background-image: url("/assets/media/svg/reddit.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(3) a::before {
|
&:nth-child(3) a::before {
|
||||||
background-image: url("../media/svg/slack.svg");
|
background-image: url("/assets/media/svg/slack.svg");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -345,9 +345,9 @@
|
||||||
|
|
||||||
|
|
||||||
.page__header {
|
.page__header {
|
||||||
background-image: url("../media/images/background-a.jpg");
|
background-image: url("/assets/media/images/background-a.jpg");
|
||||||
}
|
}
|
||||||
|
|
||||||
.page__content {
|
.page__content {
|
||||||
background-image: url("../media/images/grid.png");
|
background-image: url("/assets/media/images/grid.png");
|
||||||
}
|
}
|
||||||
|
|
|
@ -331,10 +331,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
select {
|
select {
|
||||||
background-image: url("../../media/svg/down.svg");
|
background-image: url("/assets/media/svg/down.svg");
|
||||||
background-position: 99% center;
|
background-position: 99% center;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: 1rem;
|
background-size: 1rem;
|
||||||
|
padding-right: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
@include hide-text;
|
@include hide-text;
|
||||||
width: 10rem; height: 3rem;
|
width: 10rem; height: 3rem;
|
||||||
|
|
||||||
background-image: url("../media/svg/logo.svg");
|
background-image: url("/assets/media/svg/logo.svg");
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|
1
views/pages/_api.js
Normal file
1
views/pages/_api.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// https://www.npmjs.com/package/make-fetch-happen
|
|
@ -16,17 +16,17 @@ module.exports = exports = () => async () => html`
|
||||||
<div class="hook" id="hook">
|
<div class="hook" id="hook">
|
||||||
<nav class="hook__navigation" id="hook-navigation">
|
<nav class="hook__navigation" id="hook-navigation">
|
||||||
<div class="inner-wrap"> <!--/ TODO: Save tutorial position to localStorage /-->
|
<div class="inner-wrap"> <!--/ TODO: Save tutorial position to localStorage /-->
|
||||||
<a href="#" class="hook__navigation__step" data-action="go to step 1">
|
<a href="#" class="hook__navigation__step" data-action="tour, step one">
|
||||||
<span class="number">1</span>
|
<span class="number">1</span>
|
||||||
Resolve a claim
|
Resolve a claim
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a href="#" class="hook__navigation__step" data-action="go to step 2">
|
<a href="#" class="hook__navigation__step" data-action="tour, step two">
|
||||||
<span class="number">2</span>
|
<span class="number">2</span>
|
||||||
Publish content
|
Publish content
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a href="#" class="hook__navigation__step" data-action="go to step 3">
|
<a href="#" class="hook__navigation__step" data-action="tour, step three">
|
||||||
<span class="number">3</span>
|
<span class="number">3</span>
|
||||||
Support with LBC
|
Support with LBC
|
||||||
</a>
|
</a>
|
||||||
|
@ -126,24 +126,66 @@ function step1() {
|
||||||
function step2() {
|
function step2() {
|
||||||
/**
|
/**
|
||||||
Step 2 loading steps:
|
Step 2 loading steps:
|
||||||
...
|
- exampleCode !== ''
|
||||||
|
<pre style="clear: both;"><code class="bash"><span v-html="highlight('bash', exampleCode)"></span></code></pre>
|
||||||
|
|
||||||
|
- isLoading
|
||||||
|
<div class="loader"></div>
|
||||||
|
|
||||||
|
- jsonData
|
||||||
|
<p style="text-align: center;">Success!<br/>
|
||||||
|
<a class="__button-black" v-bind:href="'http://explorer.lbry.io/tx/'+txid">See the transaction on explorer.lbry.io</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="text-align: center;">Here is the raw response:</p>
|
||||||
|
<pre><code class="json"><span v-html="highlight('json', jsonData)"></span></code></pre>
|
||||||
|
|
||||||
|
Process after submitting meme:
|
||||||
|
- isLoading appears
|
||||||
|
- exampleCode and jsonData replace `#step2-placeholder` contents
|
||||||
|
- next button should exist
|
||||||
|
|
||||||
|
Issues:
|
||||||
|
- image isn't uploaded to spee.ch
|
||||||
|
- response is blank
|
||||||
|
- response should have link to upload on Blockchain Explorer
|
||||||
|
- NSFW flag should work
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const images = [
|
const images = [
|
||||||
{
|
{
|
||||||
src: "../carlsagan2.jpg",
|
src: "/assets/media/images/carlsagan2.jpg",
|
||||||
alt: "Carl Sagan"
|
alt: "Carl Sagan"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
src: "../doge-meme.jpg",
|
src: "/assets/media/images/doge-meme.jpg",
|
||||||
alt: "Doge"
|
alt: "Doge"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
src: "../lbry-green.png",
|
src: "/assets/media/images/lbry-green.png",
|
||||||
alt: "LBRY Logo With Green Background"
|
alt: "LBRY Logo With Green Background"
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const memePlaceholderData = {
|
||||||
|
bottomLine: {
|
||||||
|
placeholder: "Top line",
|
||||||
|
value: "that I made"
|
||||||
|
},
|
||||||
|
description: {
|
||||||
|
placeholder: "Description",
|
||||||
|
value: "Check out this image I published to LBRY via lbry.tech"
|
||||||
|
},
|
||||||
|
topLine: {
|
||||||
|
placeholder: "Top line",
|
||||||
|
value: "This is an example meme"
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
placeholder: "Title",
|
||||||
|
value: "Dank Meme Supreme da Cheese"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const renderedImages = [];
|
const renderedImages = [];
|
||||||
|
|
||||||
for (const image of images) {
|
for (const image of images) {
|
||||||
|
@ -160,92 +202,80 @@ function step2() {
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="hook__page__content inner-wrap">
|
<div class="hook__page__content inner-wrap">
|
||||||
<template v-if="!isLoading">
|
<div class="hook__page__content__meme left">
|
||||||
<div class="hook__page__content__meme left">
|
<img v-bind:src="backgroundImage" id="base-image" style="height: 0; visibility: hidden;" alt="Base image for LBRY meme creator"/>
|
||||||
<img v-bind:src="backgroundImage" id="base-image" style="height: 0; visibility: hidden;" alt="Base image for LBRY meme creator"/>
|
<canvas id="meme-canvas" width="400" height="300">Unfortunately, it looks like canvas is <strong>not supported</strong> in your browser</canvas>
|
||||||
<canvas id="meme-canvas" width="400" height="300">Sorry, canvas is not supported</canvas>
|
|
||||||
|
|
||||||
<!--/ <img v-for="image in images" v-bind:src="image.src" v-on:click="chooseImage(image.src)" class="hook__page__content__meme__thumbnail" v-bind:class="{'selected': backgroundImage === image.src}" v-bind:alt="image.alt"/> /-->
|
<!--/ <img v-for="image in images" v-bind:src="image.src" v-on:click="chooseImage(image.src)" class="hook__page__content__meme__thumbnail" v-bind:class="{'selected': backgroundImage === image.src}" v-bind:alt="image.alt"/> /-->
|
||||||
${renderedImages}
|
${renderedImages}
|
||||||
</div>
|
|
||||||
|
|
||||||
<form class="hook__page__content__meme right"> <!--/ v-on:submit.prevent="submit" /-->
|
|
||||||
<h2>Image Text</h2>
|
|
||||||
|
|
||||||
<fieldset>
|
|
||||||
<label for="meme-top-line">Top line</label>
|
|
||||||
<input name="meme-top-line" id="meme-top-line" type="text" placeholder="Top line" required/> <!--/ v-model="topLine" /-->
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset>
|
|
||||||
<label for="meme-bottom-line">Bottom line</label>
|
|
||||||
<input name="meme-bottom-line" id="meme-bottom-line" type="text" placeholder="Bottom line" required/> <!--/ v-model="bottomLine" /-->
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<h2 class="__metadata">Metadata</h2>
|
|
||||||
|
|
||||||
<fieldset>
|
|
||||||
<label for="meme-title">Title</label>
|
|
||||||
<input name="meme-title" id="meme-title" type="text" placeholder="Title" required/> <!--/ v-model="title" /-->
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset>
|
|
||||||
<label for="meme-description">Description</label>
|
|
||||||
<textarea name="meme-description" id="meme-description" type="text" placeholder="Description" spellcheck="false" required>{{ description }}</textarea> <!--/ v-model="description" /-->
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset>
|
|
||||||
<label for="meme-language">Language</label>
|
|
||||||
<select name="meme-language" id="meme-language"> <!--/ v-model="language" /-->
|
|
||||||
<option value="ar">Arabic</option>
|
|
||||||
<option value="zh">Chinese (Mandarin)</option>
|
|
||||||
<option value="en">English</option>
|
|
||||||
<option value="fr">French</option>
|
|
||||||
<option value="de">German</option>
|
|
||||||
<option value="it">Italian</option>
|
|
||||||
<option value="jp">Japanese</option>
|
|
||||||
<option value="ru">Russian</option>
|
|
||||||
<option value="es">Spanish</option>
|
|
||||||
<option value="">Not specified</option>
|
|
||||||
</select>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset>
|
|
||||||
<label for="meme-license">License</label>
|
|
||||||
<select name="meme-license" id="meme-license" required> <!--/ v-model="license" /-->
|
|
||||||
<option value="Public Domain">Public Domain</option>
|
|
||||||
<option value="Creative Commons Attribution 4.0 International">Creative Commons Attribution 4.0 International</option>
|
|
||||||
<option value="Creative Commons Attribution-ShareAlike 4.0 International">Creative Commons Attribution-ShareAlike 4.0 International</option>
|
|
||||||
<option value="Creative Commons Attribution-NoDerivatives 4.0 International">Creative Commons Attribution-NoDerivatives 4.0 International</option>
|
|
||||||
<option value="Creative Commons Attribution-NonCommercial 4.0 International">Creative Commons Attribution-NonCommercial 4.0 International</option>
|
|
||||||
<option value="Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International</option>
|
|
||||||
<option value="Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International">Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International</option>
|
|
||||||
<option value="None">None</option>
|
|
||||||
</select>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset>
|
|
||||||
<label><input type="checkbox" name="nsfw"/>NSFW</label> <!--/ v-model="nsfw" /-->
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset>
|
|
||||||
<input type="submit" class="__button-black" value="Submit"/>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<pre v-if="exampleCode !== ''" style="clear: both;"><code class="bash"><span v-html="highlight('bash', exampleCode)"></span></code></pre>
|
|
||||||
|
|
||||||
<div class="loader" v-if="isLoading"></div>
|
|
||||||
|
|
||||||
<div v-if="jsonData">
|
|
||||||
<p style="text-align: center;">Success!<br/>
|
|
||||||
<a class="__button-black" v-bind:href="'http://explorer.lbry.io/tx/'+txid">See the transaction on explorer.lbry.io</a>
|
|
||||||
</p>
|
|
||||||
<p style="text-align: center;">Here is the raw response:</p>
|
|
||||||
<pre><code class="json"><span v-html="highlight('json', jsonData)"></span></code></pre>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<form class="hook__page__content__meme right"> <!--/ v-on:submit.prevent="submit" /-->
|
||||||
|
<h2>Image Text</h2>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<label for="meme-top-line">Top line</label>
|
||||||
|
<input name="meme-top-line" id="meme-top-line" type="text" placeholder="${memePlaceholderData.topLine.placeholder}" spellcheck="false" value="${memePlaceholderData.topLine.value}" required/>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<label for="meme-bottom-line">Bottom line</label>
|
||||||
|
<input name="meme-bottom-line" id="meme-bottom-line" type="text" placeholder="${memePlaceholderData.bottomLine.placeholder}" spellcheck="false" value="${memePlaceholderData.bottomLine.value}" required/>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<h2 class="__metadata">Metadata</h2>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<label for="meme-title">Title</label>
|
||||||
|
<input name="meme-title" id="meme-title" type="text" placeholder="${memePlaceholderData.title.placeholder}" spellcheck="false" value="${memePlaceholderData.title.value}" required/>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<label for="meme-description">Description</label>
|
||||||
|
<textarea name="meme-description" id="meme-description" type="text" placeholder="${memePlaceholderData.description.placeholder}" spellcheck="false" required>${memePlaceholderData.description.value}</textarea>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<label for="meme-language">Language</label>
|
||||||
|
<select name="meme-language" id="meme-language">
|
||||||
|
<option value="ar">Arabic</option>
|
||||||
|
<option value="zh">Chinese (Mandarin)</option>
|
||||||
|
<option value="en">English</option>
|
||||||
|
<option value="fr">French</option>
|
||||||
|
<option value="de">German</option>
|
||||||
|
<option value="it">Italian</option>
|
||||||
|
<option value="jp">Japanese</option>
|
||||||
|
<option value="ru">Russian</option>
|
||||||
|
<option value="es">Spanish</option>
|
||||||
|
<option value="">Not specified</option>
|
||||||
|
</select>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<label for="meme-license">License</label>
|
||||||
|
<select name="meme-license" id="meme-license" required>
|
||||||
|
<option value="Public Domain">Public Domain</option>
|
||||||
|
<option value="Creative Commons Attribution 4.0 International">Creative Commons Attribution 4.0 International</option>
|
||||||
|
<option value="Creative Commons Attribution-ShareAlike 4.0 International">Creative Commons Attribution-ShareAlike 4.0 International</option>
|
||||||
|
<option value="Creative Commons Attribution-NoDerivatives 4.0 International">Creative Commons Attribution-NoDerivatives 4.0 International</option>
|
||||||
|
<option value="Creative Commons Attribution-NonCommercial 4.0 International">Creative Commons Attribution-NonCommercial 4.0 International</option>
|
||||||
|
<option value="Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International</option>
|
||||||
|
<option value="Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International">Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International</option>
|
||||||
|
<option value="None">None</option>
|
||||||
|
</select>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<label><input type="checkbox" name="nsfw"/>NSFW</label>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<input type="submit" class="__button-black" value="Submit"/>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="hook__page__content inner-wrap" id="step2-placeholder"></div>
|
||||||
</section>
|
</section>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,10 +3,11 @@
|
||||||
|
|
||||||
|
|
||||||
$("#fetch-claim-uri").val(""); // reset
|
$("#fetch-claim-uri").val(""); // reset
|
||||||
|
detectLanguageAndUpdate();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$("[data-action]").on("click", event => {
|
$("body").on("click", "[data-action]", event => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
const data = event.currentTarget.dataset;
|
const data = event.currentTarget.dataset;
|
||||||
|
|
||||||
|
@ -20,6 +21,33 @@ $("[data-action]").on("click", event => {
|
||||||
fetchMetadata(data.claimId);
|
fetchMetadata(data.claimId);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "tour, step one":
|
||||||
|
$(".hook__navigation__step").removeClass("active");
|
||||||
|
$(".hook__navigation__step:nth-child(1)").addClass("active");
|
||||||
|
|
||||||
|
$("#step1-page").show();
|
||||||
|
$("#step2-page").hide();
|
||||||
|
$("#step3-page").hide();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "tour, step two":
|
||||||
|
$(".hook__navigation__step").removeClass("active");
|
||||||
|
$(".hook__navigation__step:nth-child(2)").addClass("active");
|
||||||
|
|
||||||
|
$("#step1-page").hide();
|
||||||
|
$("#step2-page").show();
|
||||||
|
$("#step3-page").hide();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "tour, step three":
|
||||||
|
$(".hook__navigation__step").removeClass("active");
|
||||||
|
$(".hook__navigation__step:nth-child(3)").addClass("active");
|
||||||
|
|
||||||
|
$("#step1-page").hide();
|
||||||
|
$("#step2-page").hide();
|
||||||
|
$("#step3-page").show();
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -27,6 +55,27 @@ $("[data-action]").on("click", event => {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// H E L P E R S
|
||||||
|
|
||||||
|
function detectLanguageAndUpdate() {
|
||||||
|
const compare = (array1, array2) => array2.filter(value => array2.indexOf(value)); // compare two arrays and get match(es)
|
||||||
|
const memeLocaleObject = $("#meme-language").children();
|
||||||
|
const memeLocales = [];
|
||||||
|
const userLocales = [];
|
||||||
|
|
||||||
|
for (const language of navigator.languages) userLocales.push(language);
|
||||||
|
|
||||||
|
for (const key in memeLocaleObject) {
|
||||||
|
if (memeLocaleObject[key] && memeLocaleObject[key].value) memeLocales.push(memeLocaleObject[key].value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
memeLocales.length &&
|
||||||
|
userLocales.length &&
|
||||||
|
compare(memeLocales, userLocales).length
|
||||||
|
) $("#meme-language").children(`option[value="${compare(memeLocales, userLocales)[0]}"]`).attr("selected", true);
|
||||||
|
}
|
||||||
|
|
||||||
function fetchMetadata(metadataId) {
|
function fetchMetadata(metadataId) {
|
||||||
send(JSON.stringify({
|
send(JSON.stringify({
|
||||||
"claim": metadataId,
|
"claim": metadataId,
|
||||||
|
|
Loading…
Reference in a new issue