Skip to content

Commit 8f00f7a

Browse files
authored
Merge pull request #6 from andreev2007/ISSUE_7
feat(sanya-loh): add server functionality with toasts (ISSUE-7)
2 parents 22af32b + 15e07f4 commit 8f00f7a

23 files changed

+784
-95
lines changed

package-lock.json

+722-26
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
},
1111
"dependencies": {
1212
"core-js": "^3.8.3",
13+
"firebase": "^10.12.2",
1314
"moment": "^2.30.1",
1415
"vue": "^3.2.13",
1516
"vue3-toastify": "^0.2.1"

src/App.vue

+1-2
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,11 @@ body {
2727
backdrop-filter: blur(4px);
2828
padding: 40px;
2929
overflow-x: hidden;
30-
min-height: 100vh;
3130
}
3231
3332
@media (max-width: 1000px) {
3433
body {
35-
background-image: url("assets/a-cheerful-korean-girl-wearing-hoodie-and-knit-hat-ai-generative-photo.jpg");
34+
background-image: url("https://firebasestorage.googleapis.com/v0/b/sanya-loh-backend.appspot.com/o/images%2Fkorean-girl-bg.jpg?alt=media&token=80b00ef2-b0ea-4f26-bdc4-1ea4bb7b6084");
3635
}
3736
}
3837
</style>

src/assets/728757-200.png

-3.55 KB
Binary file not shown.

src/assets/Love_China_Flag.png

-27.3 KB
Binary file not shown.

src/assets/chin chen hong chi.mp3

-111 KB
Binary file not shown.

src/assets/china sound.mp3

-8.4 MB
Binary file not shown.

src/assets/gta san.mp3

-3.87 MB
Binary file not shown.

src/assets/logo.png

-6.69 KB
Binary file not shown.
-56.7 KB
Binary file not shown.

src/assets/loverman.mp3

-3.66 MB
Binary file not shown.

src/assets/penis music.mp3

-654 KB
Binary file not shown.

src/assets/penis.png

-9.9 KB
Binary file not shown.

src/assets/plus-social-credits.png

-95.6 KB
Binary file not shown.

src/assets/sanya-loh.mp3

-9.19 MB
Binary file not shown.
Binary file not shown.
Binary file not shown.

src/assets/sanya.png

-40.1 KB
Binary file not shown.

src/assets/siren.mp3

-45.4 KB
Binary file not shown.

src/components/MusicOptions.vue

+22-61
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<div class="sanya-loh__music-wrapper">
2+
<div class="sanya-loh__music-wrapper" >
33
<button v-if="windowWidth < 1000" class="sanya-loh__menu-wrapper" @click="toggleMenu">
44
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="40" height="40" viewBox="0 0 50 50">
55
<path d="M 0 7.5 L 0 12.5 L 50 12.5 L 50 7.5 Z M 0 22.5 L 0 27.5 L 50 27.5 L 50 22.5 Z M 0 37.5 L 0 42.5 L 50 42.5 L 50 37.5 Z" fill="pink"></path>
@@ -19,15 +19,10 @@
1919
</div>
2020
</template>
2121
<script>
22-
import gtaSound from "@/assets/gta san.mp3";
23-
import blowjoberSound from "@/assets/sanya-loh.mp3";
24-
import chinaSound from "@/assets/china sound.mp3";
25-
import chinaLoveSound from "@/assets/loverman.mp3";
26-
import penisMusic from "@/assets/penis music.mp3";
27-
import socialCreditPlusMusic from "@/assets/chin chen hong chi.mp3";
28-
import socialCreditMinusMusic from "@/assets/siren.mp3";
2922
import { toast } from 'vue3-toastify';
3023
import 'vue3-toastify/dist/index.css';
24+
import db from '/src/firebase/index';
25+
import { collection, getDocs } from "firebase/firestore";
3126
3227
export default {
3328
name: "MusicOptions",
@@ -37,12 +32,12 @@ export default {
3732
}
3833
const successNotify = () => {
3934
toast.success(`+ ${rndInt(100, 1000)} Social credits`, {
40-
autoClose: 2000,
35+
autoClose: 1000,
4136
});
4237
}
4338
const dangerNotify = () => {
4439
toast.error(`- ${rndInt(100000, 1000000)} Social credits`, {
45-
autoClose: 2000,
40+
autoClose: 1000,
4641
});
4742
}
4843
return { successNotify, dangerNotify };
@@ -61,50 +56,17 @@ export default {
6156
return {
6257
isMenuOpened: false,
6358
windowWidth: window.innerWidth,
64-
musicOptions: [
65-
{
66-
id: 1,
67-
option_name: 'nigga_chan',
68-
option_label: 'nigga chan',
69-
img_src: require('../assets/sanya-loh__music-nigga-head-Photoroom.png-Photoroom.png'),
70-
audio_src: gtaSound,
71-
social_credit: -1,
72-
},
73-
{
74-
id: 2,
75-
option_name: 'china_credit_gimn',
76-
option_label: 'china credit gimn',
77-
img_src: require('../assets/sanya-loh__music-nigga-head-second.png'),
78-
audio_src: chinaSound,
79-
social_credit: 1,
80-
},
81-
{
82-
id: 3,
83-
option_name: 'china_love',
84-
option_label: 'china love',
85-
img_src: require('../assets/Love_China_Flag.png'),
86-
audio_src: chinaLoveSound,
87-
social_credit: 1,
88-
},
89-
{
90-
id: 4,
91-
option_name: 'penis_music',
92-
option_label: 'penis music',
93-
img_src: require('../assets/penis.png'),
94-
audio_src: penisMusic,
95-
social_credit: -1,
96-
},
97-
{
98-
id: 5,
99-
option_name: 'sanya_sosi',
100-
option_label: 'sanya blowjober',
101-
img_src: require('../assets/728757-200.png'),
102-
audio_src: blowjoberSound,
103-
social_credit: -1,
104-
},
105-
]
59+
musicOptions: [],
10660
}
10761
},
62+
async created() {
63+
const querySnapshot = await getDocs(collection(db, "music_options"));
64+
querySnapshot.forEach((doc) => {
65+
console.log(doc.data());
66+
this.musicOptions.push(doc.data());
67+
});
68+
this.musicOptions.sort((a, b) => b.created_at - a.created_at);
69+
},
10870
methods: {
10971
onResize() {
11072
this.windowWidth = window.innerWidth;
@@ -115,10 +77,10 @@ export default {
11577
chooseAudio(item) {
11678
if (item.social_credit > 0) {
11779
this.successNotify();
118-
new Audio(socialCreditPlusMusic).play();
80+
new Audio('https://firebasestorage.googleapis.com/v0/b/sanya-loh-backend.appspot.com/o/audios%2Fchin%20chen%20hong%20chi.mp3?alt=media&token=50ff68d2-9a3c-479a-8491-ce845459e79b').play();
11981
} else {
12082
this.dangerNotify();
121-
new Audio(socialCreditMinusMusic).play();
83+
new Audio('https://firebasestorage.googleapis.com/v0/b/sanya-loh-backend.appspot.com/o/audios%2Fsiren.mp3?alt=media&token=544db688-e3fb-412f-b068-aa6b748926ca').play();
12284
}
12385
this.$emit('music-stop');
12486
this.$emit('music-replace', new Audio(item.audio_src), item);
@@ -138,21 +100,21 @@ export default {
138100
139101
&.Toastify__toast--error {
140102
.Toastify__toast-icon {
141-
background-image: url("../assets/lost social credit a lot.png");
103+
background-image: url("https://firebasestorage.googleapis.com/v0/b/sanya-loh-backend.appspot.com/o/images%2Flost%20social%20credit%20a%20lot.png?alt=media&token=3007241a-feb8-4dee-b26d-cd6469753a1e");
142104
}
143105
}
144106
145107
&.Toastify__toast--success {
146108
.Toastify__toast-icon {
147-
background-image: url("../assets/plus-social-credits.png");
109+
background-image: url("https://firebasestorage.googleapis.com/v0/b/sanya-loh-backend.appspot.com/o/images%2Fplus-social-credits.png?alt=media&token=5da280a5-bc4d-439d-8127-5771c1b93276");
148110
}
149111
}
150112
}
151113
152114
.Toastify__toast-icon {
153-
width: 100px;
154-
height: 100px;
155-
background-size: 100px 100px;
115+
width: 50px;
116+
height: 50px;
117+
background-size: 50px 50px;
156118
157119
svg {
158120
display: none;
@@ -162,12 +124,12 @@ export default {
162124
.sanya-loh__music-wrapper {
163125
display: grid;
164126
gap: 10px;
165-
height: 200px;
166127
background: linear-gradient(red, orange, yellow, green, blue, purple);
167128
border-radius: 30px;
168129
box-shadow: 2px 2px 10px black;
169130
overflow: hidden;
170131
padding: 20px;
132+
width: 300px;
171133
172134
.sanya-loh__menu-wrapper {
173135
display: flex;
@@ -224,7 +186,6 @@ export default {
224186
margin: 0;
225187
list-style: none;
226188
transition: .3s;
227-
height: 170px;
228189
overflow-y: auto;
229190
overflow-x: hidden;
230191
padding: 10px;

src/components/SanyaLoh.vue

+21-6
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
@click="toggleAudio"
2020
:style="sigmaStyle"
2121
>
22-
<img src="../assets/sanya.png">
22+
<img :src="activeSanyaImage">
2323
</div>
2424
</div>
2525
<div class="info">
@@ -36,25 +36,31 @@
3636

3737
<script>
3838
import MusicOptions from "@/components/MusicOptions.vue";
39-
39+
const defaultSanyaSrc = 'https://firebasestorage.googleapis.com/v0/b/sanya-loh-backend.appspot.com/o/images%2Fsanya.png?alt=media&token=72b9e86d-36b5-4e5a-9aca-69559477e80f';
4040
export default {
4141
name: 'SanyaLoh',
4242
components: {MusicOptions},
4343
data() {
4444
return {
4545
clicked: false,
46-
audio: new Audio(require('../assets/sanya-loh.mp3')),
46+
audio: new Audio('https://firebasestorage.googleapis.com/v0/b/sanya-loh-backend.appspot.com/o/audios%2Fsanya-loh.mp3?alt=media&token=2ab9aab1-3534-4adf-9fd5-f13f3b68ead6'),
4747
turn: 0,
48+
activeSanyaImage: defaultSanyaSrc,
4849
activeItem: {
4950
id: 4,
5051
option_name: 'sanya_sosi',
5152
option_label: 'sanya blowjober',
52-
img_src: require('../assets/728757-200.png'),
53-
audio_src: '../assets/',
5453
},
5554
}
5655
},
5756
watch: {
57+
activeItem(value) {
58+
if (value.sanya_img_src) {
59+
this.activeSanyaImage = value.sanya_img_src;
60+
} else {
61+
this.activeSanyaImage = defaultSanyaSrc;
62+
}
63+
},
5864
turn() {
5965
setTimeout(() => {
6066
if (this.clicked) {
@@ -115,6 +121,7 @@ export default {
115121
display: grid;
116122
grid-template-columns: repeat(2, auto);
117123
gap: 5vw;
124+
justify-content: center;
118125
}
119126

120127
.sanya-loh-wrapper {
@@ -205,6 +212,10 @@ export default {
205212
}
206213
}
207214

215+
.sanya-loh__music-list {
216+
height: 170px;
217+
}
218+
208219
.main-wrapper {
209220
display: grid;
210221
grid-template-columns: none;
@@ -218,7 +229,11 @@ export default {
218229

219230
.sanya-loh__music-wrapper {
220231
max-height: 250px;
221-
height: fit-content;
232+
height: 170px;
233+
234+
&.closed {
235+
height: fit-content;
236+
}
222237
}
223238
}
224239

src/firebase/index.js

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { initializeApp } from "firebase/app";
2+
import { getFirestore } from "firebase/firestore";
3+
4+
const firebaseConfig = {
5+
apiKey: "AIzaSyAKhCcnYmwwWVZeBhUK8x3siWio76_FXKM",
6+
authDomain: "sanya-loh-backend.firebaseapp.com",
7+
projectId: "sanya-loh-backend",
8+
storageBucket: "sanya-loh-backend.appspot.com",
9+
messagingSenderId: "182495298842",
10+
appId: "1:182495298842:web:507037d1277d25d9e198a3",
11+
measurementId: "G-SL4KN10CMD"
12+
};
13+
14+
// Initialize Firebase
15+
const app = initializeApp(firebaseConfig);
16+
const db = getFirestore(app);
17+
export default db;

0 commit comments

Comments
 (0)