Compare commits

..

No commits in common. "ca6478ca882e28508082971caf6d69436f127db7" and "ab83a42dfbb2ec7c903f6e843e4383c67db3ba2b" have entirely different histories.

10 changed files with 54 additions and 155 deletions

View File

@ -384,6 +384,10 @@ function sfw() {
return this.$store.state.ui.sfw; return this.$store.state.ui.sfw;
} }
async function route() {
await this.fetchActor();
}
async function mounted() { async function mounted() {
await this.fetchActor(); await this.fetchActor();
@ -418,8 +422,7 @@ export default {
sfw, sfw,
}, },
watch: { watch: {
$route: fetchActor, $route: route,
'$store.state.ui.tagFilter': fetchActor,
}, },
mounted, mounted,
methods: { methods: {

View File

@ -3,7 +3,7 @@
<Warning <Warning
v-if="showWarning" v-if="showWarning"
class="warning-container" class="warning-container"
@enter="(includeQueer) => setConsent(true, includeQueer)" @enter="setConsent(true)"
@leave="setConsent(false)" @leave="setConsent(false)"
/> />
@ -46,18 +46,11 @@ function toggleFilters(state) {
this.showSidebar = false; this.showSidebar = false;
} }
async function setConsent(consent, includeQueer) { async function setConsent(consent) {
if (consent) { if (consent) {
this.showWarning = false; this.showWarning = false;
localStorage.setItem('consent', window.env.sessionId); localStorage.setItem('consent', window.env.sessionId);
} }
if (includeQueer) {
this.$store.dispatch('setTagFilter', this.$store.state.ui.tagFilter.filter(tag => !['gay', 'bisexual', 'transsexual'].includes(tag)));
return;
}
this.$store.dispatch('setTagFilter', this.$store.state.ui.tagFilter.concat(['gay', 'bisexual', 'transsexual']));
} }
function blur(event) { function blur(event) {

View File

@ -3,26 +3,22 @@
title="filters" title="filters"
@close="$emit('close')" @close="$emit('close')"
> >
<div class="filters"> <h3 class="form-heading">Show me</h3>
<h3 class="form-heading">Show me</h3>
<ul class="tags nolist"> <ul class="tags nolist">
<li <li
v-for="tag in tags" v-for="tag in tags"
:key="tag" :key="tag"
class="tags-item" class="tags-item"
> >
<Checkbox <Checkbox
:checked="!tagFilter.includes(tag)" :checked="!tagFilter.includes(tag)"
:label="tag" :label="tag"
class="tag" class="tag"
@change="(state) => filterTag(tag, state)" @change="(state) => filterTag(tag, state)"
/> />
</li> </li>
</ul> </ul>
<p class="disclaimer">You may incidentally see filtered content</p>
</div>
</Dialog> </Dialog>
</template> </template>
@ -61,24 +57,13 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.filters { .tags-item {
width: 20rem; width: 20rem;
max-width: 100%; max-width: 100%;
}
.tags-item {
display: block; display: block;
} }
.tag { .tag {
padding: .5rem 0; padding: .5rem 0;
} }
.disclaimer {
margin: 1rem 0 0 0;
line-height: 1.5;
text-align: center;
font-size: .9rem;
color: var(--shadow);
}
</style> </style>

View File

@ -8,7 +8,7 @@
<strong class="title">This website contains sexually explicit content</strong> <strong class="title">This website contains sexually explicit content</strong>
<span class="copy agree">By entering, you agree to the following</span> <span class="copy">By entering, you agree to the following</span>
<ul class="rules"> <ul class="rules">
<li class="rule">You are at least 18 years old, and legally permitted to view adult material in your jurisdiction.</li> <li class="rule">You are at least 18 years old, and legally permitted to view adult material in your jurisdiction.</li>
@ -22,26 +22,13 @@
href="https://www.google.com" href="https://www.google.com"
class="button leave" class="button leave"
@click="$emit('leave')" @click="$emit('leave')"
><Icon icon="arrow-left16" />Leave</a> >Leave</a>
<button <button
class="button enter queer" class="button enter"
@click="$emit('enter', true)" @click="$emit('enter')"
> >Enter</button>
<span class="button-title">Enter</span>
<span class="button-sub">I like gay, bi and trans content</span>
</button>
<button
class="button enter straight"
@click="$emit('enter', false)"
>
<span class="button-title">Enter</span>
<span class="button-sub">I prefer straight content</span>
</button>
</div> </div>
<span class="preferences">You can adjust your content preferences after entering</span>
</div> </div>
</div> </div>
</template> </template>
@ -55,7 +42,6 @@ export default {
logo, logo,
}; };
}, },
emits: ['enter'],
}; };
</script> </script>
@ -82,13 +68,6 @@ export default {
margin: 1rem; margin: 1rem;
} }
.logo {
width: 8rem;
display: flex;
fill: var(--primary);
margin: 1rem auto 0 auto;
}
.title, .title,
.copy, .copy,
.rules { .rules {
@ -119,106 +98,52 @@ export default {
line-height: 1.5; line-height: 1.5;
} }
.preferences {
color: var(--lighten);
display: block;
padding: .5rem 0 1rem 0;
text-align: center;
font-size: .9rem;
}
.actions { .actions {
display: flex; display: flex;
text-align: center; text-align: center;
padding: 1rem 0; padding: 1rem 1rem 2rem 1rem;
} }
.button { .button {
display: inline-block; display: inline-block;
padding: 1rem;
border: none; border: none;
font-size: 1.5rem; font-size: 1.5rem;
padding: 0;
background: none;
border: solid 2px transparent;
cursor: pointer; cursor: pointer;
text-decoration: none; text-decoration: none;
flex-basis: 0; color: var(--lighten-strong);
&.leave { &.leave {
display: inline-flex; background: var(--darken-strong);
align-items: center; padding: 1rem 3rem;
justify-content: center;
color: var(--lighten-strong);
padding: 1rem;
.icon {
width: 1.5rem;
height: 1.5rem;
margin: 0 1rem 0 0;
fill: var(--lighten);
}
} }
&.enter { &.enter {
background: var(--primary);
font-weight: bold;
flex-grow: 1; flex-grow: 1;
&:hover { &:hover {
.button-title, color: var(--text-light);
.button-sub {
color: var(--text-light);
}
} }
} }
&.straight {
border-color: var(--primary);
}
&.queer {
border-image: linear-gradient(90deg, #f00, #f80, #ff0, #0f0, #00f, #a0f, #fff, #f8f, #0ff) 1;
}
&:not(:last-child) {
margin: 0 2rem 0 0;
}
&:hover { &:hover {
color: var(--text-light); color: var(--text-light);
.icon {
fill: var(--text-light);
}
} }
} }
.button-title, .logo {
.button-sub { width: 8rem;
width: 100%; display: flex;
display: block; fill: var(--primary);
box-sizing: border-box; margin: 1rem auto 0 auto;
}
.button-title {
font-size: 1.5rem;
padding: .5rem .5rem .15rem .5rem;
color: var(--lighten-strong);
font-weight: bold;
}
.button-sub {
font-size: .75rem;
padding: .15rem .5rem .75rem .5rem;
color: var(--lighten);
} }
@media(max-width: $breakpoint) { @media(max-width: $breakpoint) {
.title { .title {
font-size: 1.5rem; font-size: 1.5rem;
} }
.button:not(:last-child) {
margin: 0 1rem 0 0;
}
} }
@media(max-width: $breakpoint-micro) { @media(max-width: $breakpoint-micro) {

View File

@ -170,7 +170,6 @@ export default {
}, },
watch: { watch: {
$route: route, $route: route,
'$store.state.ui.tagFilter': fetchEntity,
}, },
mounted, mounted,
methods: { methods: {

View File

@ -44,6 +44,10 @@ async function fetchReleases() {
this.$refs.content.scrollTop = 0; this.$refs.content.scrollTop = 0;
} }
async function route() {
await this.fetchReleases();
}
async function mounted() { async function mounted() {
this.pageTitle = ''; this.pageTitle = '';
@ -67,8 +71,7 @@ export default {
}; };
}, },
watch: { watch: {
$route: fetchReleases, $route: route,
'$store.state.ui.tagFilter': fetchReleases,
}, },
mounted, mounted,
methods: { methods: {

View File

@ -75,6 +75,10 @@ async function fetchReleases() {
this.description = this.tag.description && converter.makeHtml(escapeHtml(this.tag.description)); this.description = this.tag.description && converter.makeHtml(escapeHtml(this.tag.description));
} }
async function route() {
await this.fetchReleases();
}
async function mounted() { async function mounted() {
await this.fetchReleases(); await this.fetchReleases();
this.pageTitle = this.tag.name; this.pageTitle = this.tag.name;
@ -101,8 +105,7 @@ export default {
}; };
}, },
watch: { watch: {
$route: fetchReleases, $route: route,
'$store.state.ui.tagFilter': fetchReleases,
}, },
mounted, mounted,
methods: { methods: {

View File

@ -27,7 +27,6 @@ function initActorActions(store, router) {
$orderBy:[ReleasesOrderBy!] $orderBy:[ReleasesOrderBy!]
$selectableTags: [String], $selectableTags: [String],
$includedTags: [String!], $includedTags: [String!],
$exclude: [String!],
$mode: String!, $mode: String!,
$includedEntities: [ReleaseFilter!], $includedEntities: [ReleaseFilter!],
$includedActors: [ReleaseFilter!] $includedActors: [ReleaseFilter!]
@ -204,17 +203,6 @@ function initActorActions(store, router) {
{ {
or: $includedActors or: $includedActors
} }
{
releasesTagsConnection: {
none: {
tag: {
slug: {
in: $exclude
}
}
}
}
}
] ]
} }
selectedTags: $includedTags selectedTags: $includedTags
@ -240,7 +228,7 @@ function initActorActions(store, router) {
beforeTime: store.getters.before, beforeTime: store.getters.before,
selectableTags: config.selectableTags, selectableTags: config.selectableTags,
orderBy, orderBy,
exclude: store.state.ui.tagFilter, excludeTags: store.state.ui.filter,
includedTags, includedTags,
includedEntities: getIncludedEntities(router), includedEntities: getIncludedEntities(router),
includedActors: getIncludedActors(router), includedActors: getIncludedActors(router),

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "traxxx", "name": "traxxx",
"version": "1.152.1", "version": "1.152.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

View File

@ -1,6 +1,6 @@
{ {
"name": "traxxx", "name": "traxxx",
"version": "1.152.1", "version": "1.152.0",
"description": "All the latest porn releases in one place", "description": "All the latest porn releases in one place",
"main": "src/app.js", "main": "src/app.js",
"scripts": { "scripts": {