Added content warning dialog.

This commit is contained in:
DebaucheryLibrarian 2020-12-18 02:10:30 +01:00
parent 5e7741afe8
commit 5b16941ec5
3 changed files with 148 additions and 0 deletions

View File

@ -3,6 +3,12 @@
class="container" class="container"
:class="theme" :class="theme"
> >
<Warning
v-if="showWarning"
class="warning-container"
@enter="closeWarning"
/>
<transition name="slide"> <transition name="slide">
<Sidebar <Sidebar
v-if="showSidebar" v-if="showSidebar"
@ -23,6 +29,7 @@ import { mapState } from 'vuex';
import EventBus from '../../js/event-bus'; import EventBus from '../../js/event-bus';
import Warning from './warning.vue';
import Header from '../header/header.vue'; import Header from '../header/header.vue';
import Sidebar from '../sidebar/sidebar.vue'; import Sidebar from '../sidebar/sidebar.vue';
@ -34,6 +41,11 @@ function toggleSidebar(state) {
this.showSidebar = typeof state === 'boolean' ? state : !this.showSidebar; this.showSidebar = typeof state === 'boolean' ? state : !this.showSidebar;
} }
function closeWarning() {
this.showWarning = false;
sessionStorage.setItem('warning', 'warned');
}
function mounted() { function mounted() {
document.addEventListener('click', () => { document.addEventListener('click', () => {
EventBus.$emit('blur'); EventBus.$emit('blur');
@ -44,10 +56,12 @@ export default {
components: { components: {
Header, Header,
Sidebar, Sidebar,
Warning,
}, },
data() { data() {
return { return {
showSidebar: false, showSidebar: false,
showWarning: sessionStorage.getItem('warning') !== 'warned',
}; };
}, },
computed: { computed: {
@ -58,6 +72,7 @@ export default {
mounted, mounted,
methods: { methods: {
toggleSidebar, toggleSidebar,
closeWarning,
}, },
}; };
</script> </script>

View File

@ -0,0 +1,132 @@
<template>
<div class="warning-container">
<div class="warning">
<strong class="title">This website contains sexually explicit content</strong>
<span class="copy">By entering, you agree to the following</span>
<ul class="rules">
<li class="rule">You are at least 18 years old, and a legal adult in your jurisdiction.</li>
<li class="rule">You are prepared see, hear and read erotic and sexual material, some of which could be considered obscene or offensive by some.</li>
<li class="rule">You understand that the majority of sexual acts on this website are fictional, performed by professional actors for entertainment purposes, and not representative of real-life interactions.</li>
<li class="rule">Respect your sexual partners, communicate about each other's fantasies and limits, and take precautions to prevent sexually transmitted infections and unintended pregnancies.</li>
</ul>
<div class="actions">
<a
href="https://www.google.com"
class="button leave"
>Leave</a>
<button
class="button enter"
@click="$emit('enter')"
>Enter</button>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
@import 'breakpoints';
.warning-container {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
z-index: 10;
background: var(--darken-extreme);
backdrop-filter: blur(.5rem);
overflow-y: auto;
}
.warning {
color: var(--text-light);
width: 50rem;
max-height: 100%;
max-width: 100%;
margin: 1rem;
}
.title,
.copy,
.rules {
padding: 1rem;
}
.title {
display: block;
font-size: 2rem;
margin: 0 0 1rem 0;
color: var(--text-light);
}
.copy {
display: block;
padding: 0 1rem;
font-weight: bold;
}
.rules {
margin: 0 0 0 1rem;
text-align: left;
text-shadow: 0 0 3px var(--darken-extreme);
}
.rule {
padding: .5rem 1rem;
line-height: 1.5;
}
.actions {
display: flex;
text-align: center;
padding: 1rem;
margin: 1rem 0 0 0;
}
.button {
display: inline-block;
padding: 1rem;
border: none;
font-size: 1.5rem;
cursor: pointer;
text-decoration: none;
color: var(--lighten-strong);
&.leave {
background: var(--darken-strong);
padding: 1rem 3rem;
}
&.enter {
background: var(--primary);
font-weight: bold;
flex-grow: 1;
&:hover {
color: var(--text-light);
}
}
&:hover {
color: var(--text-light);
}
}
@media(max-width: $breakpoint) {
.title {
font-size: 1.5rem;
}
}
@media(max-width: $breakpoint-micro) {
.button.leave {
padding: 1rem;
flex-grow: 1;
}
}
</style>

View File

@ -7,6 +7,7 @@ $breakpoint4: 1500px;
:root { :root {
/* --primary: #ff886c; */ /* --primary: #ff886c; */
--primary: #ff6c88; --primary: #ff6c88;
--primary-strong: #ff4166;
--text-dark: #222; --text-dark: #222;
--text-light: #fff; --text-light: #fff;