Co-authored-by: Vlad <vlad960706@gmail.com> Reviewed-on: #5 Co-authored-by: Vlad Narizhnyi <vlad960706@gmail.com> Co-committed-by: Vlad Narizhnyi <vlad960706@gmail.com>pull/6/head
After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 142 KiB |
Before Width: | Height: | Size: 142 KiB |
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
@ -1,11 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> |
|
||||||
|
|
||||||
<item android:drawable="@color/splashprimary" /> |
|
||||||
<item> |
|
||||||
<bitmap |
|
||||||
android:gravity="center" |
|
||||||
android:src="@drawable/splash_image" /> |
|
||||||
</item> |
|
||||||
|
|
||||||
</layer-list> |
|
@ -1,15 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||||
<RelativeLayout |
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android" |
|
||||||
android:layout_width="match_parent" |
|
||||||
android:layout_height="match_parent"> |
|
||||||
|
|
||||||
<ImageView |
|
||||||
android:layout_width="wrap_content" |
|
||||||
android:layout_height="wrap_content" |
|
||||||
android:layout_margin="0dp" |
|
||||||
android:contentDescription="Splashscreen" |
|
||||||
android:scaleType="fitCenter" |
|
||||||
android:background="@color/splashprimary" |
|
||||||
android:src="@drawable/splashscreen"/> |
|
||||||
</RelativeLayout> |
|
@ -0,0 +1,11 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:orientation="vertical" android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent"> |
||||||
|
<ImageView |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent" |
||||||
|
android:src="@drawable/splash_screen" |
||||||
|
android:scaleType="centerCrop" |
||||||
|
/> |
||||||
|
</RelativeLayout> |
@ -0,0 +1,5 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> |
||||||
|
<background android:drawable="@color/ic_launcher_background"/> |
||||||
|
<foreground android:drawable="@mipmap/ic_launcher_foreground"/> |
||||||
|
</adaptive-icon> |
@ -0,0 +1,5 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> |
||||||
|
<background android:drawable="@color/ic_launcher_background"/> |
||||||
|
<foreground android:drawable="@mipmap/ic_launcher_foreground"/> |
||||||
|
</adaptive-icon> |
Before Width: | Height: | Size: 2.9 KiB |
@ -1,4 +0,0 @@ |
|||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> |
|
||||||
<background android:drawable="@color/iconBackground"/> |
|
||||||
<foreground android:drawable="@mipmap/ic_foreground"/> |
|
||||||
</adaptive-icon> |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 1.5 KiB |
@ -1,4 +0,0 @@ |
|||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> |
|
||||||
<background android:drawable="@color/iconBackground"/> |
|
||||||
<foreground android:drawable="@mipmap/ic_foreground"/> |
|
||||||
</adaptive-icon> |
|
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.0 KiB |
@ -1,4 +0,0 @@ |
|||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> |
|
||||||
<background android:drawable="@color/iconBackground"/> |
|
||||||
<foreground android:drawable="@mipmap/ic_foreground"/> |
|
||||||
</adaptive-icon> |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 3.9 KiB |
@ -1,4 +0,0 @@ |
|||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> |
|
||||||
<background android:drawable="@color/iconBackground"/> |
|
||||||
<foreground android:drawable="@mipmap/ic_foreground"/> |
|
||||||
</adaptive-icon> |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 6.3 KiB |
@ -1,4 +0,0 @@ |
|||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> |
|
||||||
<background android:drawable="@color/iconBackground"/> |
|
||||||
<foreground android:drawable="@mipmap/ic_foreground"/> |
|
||||||
</adaptive-icon> |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 8.5 KiB |
@ -1,4 +0,0 @@ |
|||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> |
|
||||||
<background android:drawable="@color/iconBackground"/> |
|
||||||
<foreground android:drawable="@mipmap/ic_foreground"/> |
|
||||||
</adaptive-icon> |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 14 KiB |
@ -1,3 +0,0 @@ |
|||||||
<resources> |
|
||||||
<color name ='iconBackground'>#37296B</color> |
|
||||||
</resources> |
|
@ -1,4 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||||
<resources> |
|
||||||
<color name="splashprimary">#37296B</color> |
|
||||||
</resources> |
|
@ -0,0 +1,4 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<resources> |
||||||
|
<color name="ic_launcher_background">#37296B</color> |
||||||
|
</resources> |
@ -1,3 +1,3 @@ |
|||||||
<resources> |
<resources> |
||||||
<string name="app_name">Truth</string> |
<string name="app_name">Truth or Dare</string> |
||||||
</resources> |
</resources> |
||||||
|
@ -1,27 +1,29 @@ |
|||||||
import { CustomPack } from '~i18n/interfaces/custom-pack.interface' |
import { CustomPack } from '~i18n/interfaces/custom-pack.interface' |
||||||
|
|
||||||
export const customPack: CustomPack = { |
export const customPack: CustomPack = { |
||||||
label: 'Власний пакет', |
label: 'Мій пакет', |
||||||
title: 'Створити власний пакет', |
title: 'Створити свій пакет', |
||||||
description: |
description: |
||||||
'Створіть свій власний пакет з правд та дій. Все залежить від вашої уяви!', |
'Створи свій пакет з питань та дій. Все залежить від твоєї уяви!', |
||||||
editor: 'Редактор', |
editor: 'Редактор', |
||||||
placeholder: 'Пишіть тут...', |
placeholder: 'Писати тут...', |
||||||
addTruth: 'Додати питання', |
addTruth: 'Додати питання', |
||||||
addDare: 'Додати дію', |
addDare: 'Додати дію', |
||||||
viewTruths: 'Питання', |
viewTruths: 'Питання', |
||||||
viewDares: 'Дії', |
viewDares: 'Дії', |
||||||
alertCreateTitle: 'Чудово! 🎉', |
alertCreateTitle: 'Чудово! 🎉', |
||||||
alertCreateDesc: 'Зіграйте прямо зараз!', |
alertCreateDesc: 'Зіграй прямо зараз!', |
||||||
alertSaveTitle: 'Ви маєте незбережені зміни', |
alertSaveTitle: 'У тебе незбережені зміни', |
||||||
alertSaveDesc: 'Зберегти зміни?', |
alertSaveDesc: 'Зберегти зміни?', |
||||||
alertSaveNo: 'Ні', |
alertSaveNo: 'Ні', |
||||||
alertSaveYes: 'Так', |
alertSaveYes: 'Так', |
||||||
alertEmptyTitle: 'Ой! 👀', |
alertEmptyTitle: 'Ой! 👀', |
||||||
alertEmptyTruthDesc: |
alertEmptyTruthDesc: |
||||||
'Ваш список правд порожній. Вам потрібно мати хоча б 1 правду', |
'Твій список питань порожній. Потрібно мати хоча б 1 питання.', |
||||||
alertEmptyDaresDesc: |
alertEmptyDaresDesc: |
||||||
'Ваш список викликів порожній. Вам потрібно мати хоча б 1 виклик', |
'Твій список дій порожній. Потрібно мати хоча б 1 дії.', |
||||||
editorBtn: 'Редактор правд та дій', |
editorBtn: 'Редактор правд та дій', |
||||||
play: 'Грати', |
play: 'Грати', |
||||||
|
addCustomTruth: 'Додати це питання до твого пакету?', |
||||||
|
addCustomDare: 'Додати цю дію до твого пакету?', |
||||||
} |
} |
||||||
|
@ -1,21 +1,18 @@ |
|||||||
|
|
||||||
|
|
||||||
export const onBoardingTranslationUa = { |
export const onBoardingTranslationUa = { |
||||||
step1: { |
step1: { |
||||||
title: 'Ласкаво просимо!', |
title: 'Ласкаво просимо!', |
||||||
description: |
description: |
||||||
'Дякуємо за завантаження. Тепер ви \n в найкращій грі для компанії або \n пограти з коханою людиною', |
'Дякуємо за завантаження. Тепер ти \n в найкращій грі для компанії або \n пограти з коханою людиною', |
||||||
}, |
}, |
||||||
|
|
||||||
step2: { |
|
||||||
title: 'Розслабтеся та насолоджуйтеся грою', |
|
||||||
description: |
|
||||||
'У цій грі є 5 рівнів "пікантності", деякі з яких розділені на ігри для пари або компанії. Все, що вам потрібно зробити, це додати гравців, і ви можете почати грати.\n P.S. Ви завжди можете створити власні питання та завдання', |
|
||||||
}, |
|
||||||
step3: { |
|
||||||
title: 'Преміум версія!', |
|
||||||
description: |
|
||||||
'Надає необмежений доступ до пакетів Hard та режиму Extreme \nНасолоджуйтеся інтригуючими запитаннями та захоплюючими діями', |
|
||||||
}, |
|
||||||
}; |
|
||||||
|
|
||||||
|
step2: { |
||||||
|
title: 'Розслабся та насолоджуйся грою', |
||||||
|
description: |
||||||
|
'У цій грі є 3 рівня "пікантності". Все, що потрібно - це додати гравців.\n P.S. Ти завжди можеш створити власні питання та завдання', |
||||||
|
}, |
||||||
|
step3: { |
||||||
|
title: 'Преміум версія!', |
||||||
|
description: |
||||||
|
'Надає необмежений доступ до пакету "Сrazy". \nНасолоджуйся інтригуючими запитаннями та захоплюючими діями', |
||||||
|
}, |
||||||
|
} |
||||||
|
@ -1,5 +1,3 @@ |
|||||||
export * from './use-nav.hook' |
export * from './use-nav.hook' |
||||||
export * from './use-dispatch.hook' |
|
||||||
export * from './use-events-listener.hook' |
export * from './use-events-listener.hook' |
||||||
export * from './use-selector.hook' |
|
||||||
export * from './use-form.hook' |
export * from './use-form.hook' |
||||||
|
@ -1,4 +0,0 @@ |
|||||||
import { useDispatch } from 'react-redux' |
|
||||||
import { AppDispatch } from '../../../store/store' |
|
||||||
|
|
||||||
export const useAppDispatch = () => useDispatch<AppDispatch>() |
|
@ -1,5 +0,0 @@ |
|||||||
import { useSelector } from 'react-redux' |
|
||||||
import { TypedUseSelectorHook } from 'react-redux' |
|
||||||
import { RootState } from '../../../store/store' |
|
||||||
|
|
||||||
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector |
|
@ -0,0 +1,746 @@ |
|||||||
|
export const under18 = [ |
||||||
|
{ |
||||||
|
id: 1, |
||||||
|
isDare: false, |
||||||
|
en: 'Tell about your first fight?', |
||||||
|
ua: 'Розкажи про свою першу бійку?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 2, |
||||||
|
isDare: true, |
||||||
|
en: 'Do your best dance moves for 20 seconds.', |
||||||
|
ua: 'Покажи свої найкращі танцювальні рухи протягом 20 секунд.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 3, |
||||||
|
isDare: false, |
||||||
|
en: 'Which superpower would you choose?', |
||||||
|
ua: 'Яку б суперсилу ти обрав(ла)?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 4, |
||||||
|
isDare: true, |
||||||
|
en: 'Take a funny selfie and share it with the any group.', |
||||||
|
ua: 'Зроби веселе селфі та кинь його в якийсь чат.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 5, |
||||||
|
isDare: false, |
||||||
|
en: 'What do you dream of doing by 18?', |
||||||
|
ua: 'Що ти мрієш зробити до 18?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 6, |
||||||
|
isDare: true, |
||||||
|
en: 'Tell a funny joke.', |
||||||
|
ua: 'Розкажи смішний анекдот/прікол.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 7, |
||||||
|
isDare: false, |
||||||
|
en: 'If you could visit any place in the world, where would you go?', |
||||||
|
ua: 'Якщо б ти міг(могла) відвідати будь-яке місце у світі, куди б ти поїхав(ла)?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 8, |
||||||
|
isDare: true, |
||||||
|
en: 'Make a scarf out of toilet paper and sit like that until the end of the game.', |
||||||
|
ua: 'Зроби шарф з туалетного паперу і сиди так до кінця гри.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 9, |
||||||
|
isDare: false, |
||||||
|
en: 'Name a song that you are uncomfortable listening to in front of others', |
||||||
|
ua: 'Назви пісню, яку тобі некомфортно слухати при інших', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 10, |
||||||
|
isDare: true, |
||||||
|
en: "Write 'Where's my beer' to your president on the social network ", |
||||||
|
ua: 'Напиши "Де моє пиво" своєму президентові в соціальній мережі', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 11, |
||||||
|
isDare: false, |
||||||
|
en: ' If you had to delete one person from your life permanently, who would it be and why?', |
||||||
|
ua: 'Якщо б тобі довелося видалити одну особу зі свого життя назавжди, хто б це був і чому?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 12, |
||||||
|
isDare: true, |
||||||
|
en: 'Call someone on video, be silent for 10 seconds and knock out', |
||||||
|
ua: 'Подзвони комусь по відео мовчи 10 секунд і вибий', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 13, |
||||||
|
isDare: false, |
||||||
|
en: "What's the most disgusting thing you've ever tried?", |
||||||
|
ua: 'Що найогидніше ти коли-небудь пробував(ла)?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 14, |
||||||
|
isDare: true, |
||||||
|
en: 'Sing the chorus of any song loudly.', |
||||||
|
ua: 'Голосно заспівай приспів будь-якої пісні.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 15, |
||||||
|
isDare: false, |
||||||
|
en: 'You can travel through time. Where and why would you go?', |
||||||
|
ua: 'Ти вмієш подорожувати в часі. Куди і чому б ти поїхав(ла)?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 16, |
||||||
|
isDare: true, |
||||||
|
en: 'Imitate your favorite character for 20 seconds.', |
||||||
|
ua: 'Імітуй свого улюбленого персонажа протягом 20 секунд.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 17, |
||||||
|
isDare: false, |
||||||
|
en: 'You can kiss any celebrity. Who would it be and why?', |
||||||
|
ua: 'Ти можеш поцілувати будь-яку знаменитість. Хто б це був і чому?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 18, |
||||||
|
isDare: true, |
||||||
|
en: 'Send a heartfelt message to the fifth person in your contact list, expressing gratitude for something', |
||||||
|
ua: "Відправ сердечне повідомлення п'ятій людині у своєму списку контактів, висловлюючи вдячність за щось", |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 19, |
||||||
|
isDare: false, |
||||||
|
en: 'If you had a pet dragon, what would you name it?', |
||||||
|
ua: 'Якщо б у тебе був домашній дракон, як ти б його назвав(ла)?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 20, |
||||||
|
isDare: true, |
||||||
|
en: 'Show your scary photo.', |
||||||
|
ua: 'Покажи своє страшне фото.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 21, |
||||||
|
isDare: false, |
||||||
|
en: 'What is your most embarrassing moment from childhood?', |
||||||
|
ua: "Який твій найбільш сором'язливий момент з дитинства?", |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 22, |
||||||
|
isDare: true, |
||||||
|
en: 'Dance like nobody is watching for 10 seconds.', |
||||||
|
ua: 'Танцюй так, наче тебе ніхто не бачить, протягом 10 секунд.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 23, |
||||||
|
isDare: false, |
||||||
|
en: 'If you could expose one secret about someone in this room, what would it be?', |
||||||
|
ua: 'Якби тобі довелося викрити один секрет про когось у цій кімнаті, який би це був?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 24, |
||||||
|
isDare: true, |
||||||
|
en: 'Write an message with some hint to the person you like.', |
||||||
|
ua: 'Напишіть повідомлення з натяком людині, яка вам подобається.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 25, |
||||||
|
isDare: false, |
||||||
|
en: "What's the wildest thing you've done when you thought no one was watching?", |
||||||
|
ua: 'Яка найбільш дика річ, яку ти робив, коли думав, що тебе ніхто не бачить?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 26, |
||||||
|
isDare: true, |
||||||
|
en: 'Take a silly selfie and post it on your social media.', |
||||||
|
ua: 'Зроби дурницю селфі і опублікуй його у своїй соціальній мережі.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 27, |
||||||
|
isDare: false, |
||||||
|
en: 'If you could swap lives with someone for a day, who would it be?', |
||||||
|
ua: 'Якщо б ти міг(могла) помінятися життям з кимось на один день, хто б це був?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 28, |
||||||
|
isDare: true, |
||||||
|
en: 'Take a screenshot of your recommendations on Instagram.', |
||||||
|
ua: 'Зроби скріншот своїх рекомендацій в інстаграмі.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 29, |
||||||
|
isDare: false, |
||||||
|
en: 'Tell a fact about yourself that none of the participants knows.', |
||||||
|
ua: 'Розкажи про себе факт, який не знає ніхто з учасників.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 30, |
||||||
|
isDare: true, |
||||||
|
en: 'Call a friend and wish him a happy birthday.', |
||||||
|
ua: 'Подзвони другові(подрузі) і привітай з днем народження.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 31, |
||||||
|
isDare: false, |
||||||
|
en: "If you had the power to erase one person's memory of you, who would it be and why?", |
||||||
|
ua: "Якби у тебе була сила стерти пам'ять одній людини про тебе, хто б це був і чому?", |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 32, |
||||||
|
isDare: true, |
||||||
|
en: 'Share a funny photo from your childhood with the participants.', |
||||||
|
ua: 'Поділись з учасниками смішною фоткою свого дитинства.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 33, |
||||||
|
isDare: false, |
||||||
|
en: "What is the most brave thing you've ever done?", |
||||||
|
ua: 'Яка найсміливіша річ, яку ти коли-небудь робив(ла)?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 34, |
||||||
|
isDare: true, |
||||||
|
en: "Change your phone's language settings to Chinese and use it that way for the rest of the day.", |
||||||
|
ua: 'Зміни мовні налаштування телефону на китайську мову, і використовуй його так до кінця дня.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 35, |
||||||
|
isDare: false, |
||||||
|
en: 'That you would eat one thing all your life?', |
||||||
|
ua: 'Що б ти їв(ла) щось одне все життя?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 36, |
||||||
|
isDare: true, |
||||||
|
en: 'Go live with a funny mask.', |
||||||
|
ua: 'Почни трансляцію у прямому ефірі з смішною маскою.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 37, |
||||||
|
isDare: false, |
||||||
|
en: 'What is the most useless talent you have?', |
||||||
|
ua: 'Який найбільш безглуздий талант у тебе є?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 38, |
||||||
|
isDare: true, |
||||||
|
en: 'Picture yourself as a dove.', |
||||||
|
ua: 'Зобразити себе у вигляді голуба.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 39, |
||||||
|
isDare: false, |
||||||
|
en: 'You can choose a slave from among the participants. Who would it be?', |
||||||
|
ua: 'Ти можеш вибрати собі раба з учасників. Хто б це був?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 40, |
||||||
|
isDare: true, |
||||||
|
en: 'Do your best dance moves for the next minute.', |
||||||
|
ua: 'Станцюй свій найкрутіший танець протягом 20 секунд під музику.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 41, |
||||||
|
isDare: false, |
||||||
|
en: 'What’s the most unusual job you can think of?', |
||||||
|
ua: 'Найдурніша робота, яку б ти робив(ла) за хороші гроші?', |
||||||
|
}, |
||||||
|
] |
||||||
|
|
||||||
|
export const light = [ |
||||||
|
{ |
||||||
|
id: 1, |
||||||
|
isDare: false, |
||||||
|
en: 'Tell me about a deception that benefited you.', |
||||||
|
ua: 'Розкажи про обман, який приніс тобі користь.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 2, |
||||||
|
isDare: true, |
||||||
|
en: 'Одягни на вуха носки і сиди так 3 раунда.', |
||||||
|
ua: 'Put socks on your ears and sit like that for 3 rounds.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 3, |
||||||
|
isDare: false, |
||||||
|
en: 'What is the most unethical thing you have done in public?', |
||||||
|
ua: 'Яка найбільш неетична річ, яку ти зробив(ла) на людях?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 4, |
||||||
|
isDare: true, |
||||||
|
en: 'Take a funny selfie and post it on your social media.', |
||||||
|
ua: 'Зроби смішне селфі і запости його у одну з соц. мереж.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 5, |
||||||
|
isDare: false, |
||||||
|
en: 'Найекстремальніше, що ти робив(ла), щоб комусь сподобатись?', |
||||||
|
ua: "What's the most extreme thing you've done to please someone?", |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 6, |
||||||
|
isDare: true, |
||||||
|
en: 'Dance a funny and energetic dance to sad and slow music.', |
||||||
|
ua: 'Танцюй смішний та енергічний танець під сумну та повільну музику.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 7, |
||||||
|
isDare: false, |
||||||
|
en: 'If you could be invisible for a day, what would you do?', |
||||||
|
ua: 'Якщо б ви могли бути невидимими на один день, Що б ти зробив(ла), якб?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 8, |
||||||
|
isDare: true, |
||||||
|
en: 'The participant to your right must draw you any picture with a pen anywhere.', |
||||||
|
ua: 'Учасник справа від тебе має намалювати тобі будь який малюнок ручкою в любому місці.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 9, |
||||||
|
isDare: false, |
||||||
|
en: 'What is the weirdest talent you have?', |
||||||
|
ua: 'Що ти вмієш робити найдивніше?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 10, |
||||||
|
isDare: true, |
||||||
|
en: `Change your relationship status to "It's complicated" and leave it for 24 hours.`, |
||||||
|
ua: 'Зміни свій статус відносин на "Складно" і залиш його протягом 24 годин.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 11, |
||||||
|
isDare: false, |
||||||
|
en: 'What’s the most unusual place you’ve ever visited?', |
||||||
|
ua: 'Яке найстрашніше місце, в якому ти був(ла)', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 12, |
||||||
|
isDare: true, |
||||||
|
en: '"Write to your parents that you love them.', |
||||||
|
ua: 'Напиши батькам, що ти їх любиш.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 13, |
||||||
|
isDare: false, |
||||||
|
en: 'If you could time travel, which era would you visit and why?', |
||||||
|
ua: 'Якщо б ти міг подорожувати в часі, яку епоху та місце ти б відвідав(ла) і чому?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 14, |
||||||
|
isDare: true, |
||||||
|
en: 'Roar when others laugh. The desire is valid until you choose another action.', |
||||||
|
ua: 'Каркай, коли інші сміються. Бажання дійсне поки не вибереш іншу дію.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 15, |
||||||
|
isDare: false, |
||||||
|
en: 'Tell about your dumbest act.', |
||||||
|
ua: 'Розкажи про свій найтупійший вчинок.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 16, |
||||||
|
isDare: true, |
||||||
|
en: 'Show a photo of yourself in your underwear.', |
||||||
|
ua: 'Покажи своє фото в нижній білизні.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 17, |
||||||
|
isDare: false, |
||||||
|
en: 'What do you often look at on the Internet?', |
||||||
|
ua: 'Про що ти часто дивишся в інтернеті?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 18, |
||||||
|
isDare: true, |
||||||
|
en: 'Everyone has to give you a new hairstyle.', |
||||||
|
ua: 'Всі мають зробити тобі нову зачіску.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 19, |
||||||
|
isDare: false, |
||||||
|
en: 'What do you often look at on the Internet?', |
||||||
|
ua: 'Про що ти часто дивишся в інтернеті?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 20, |
||||||
|
isDare: true, |
||||||
|
en: 'Voice the emotions of your stomach when tomato juice and diesel get there.', |
||||||
|
ua: 'Озвуч емоції свого шлунку, коли туди попадає томатний сік і дизель.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 21, |
||||||
|
isDare: false, |
||||||
|
en: 'Tell the funniest story about how you threw up.', |
||||||
|
ua: 'Розкажи про якусь ситуацію, яку ти бачив на власні очі.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 22, |
||||||
|
isDare: true, |
||||||
|
en: 'You are a tarot reader. Give a forecast for the future to the participant opposite you.', |
||||||
|
ua: 'Ти таролог. Дай прогноз на майбутне учаснику навпроти тебе.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 23, |
||||||
|
isDare: false, |
||||||
|
en: 'Tell about your worst dream.', |
||||||
|
ua: 'Розкажи про свій найгірший сон.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 24, |
||||||
|
isDare: true, |
||||||
|
en: 'Stand on a chair and say your favorite Chinese-style toast.', |
||||||
|
ua: 'Стань на стільчик та скажи любий тост у китайському стилі.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 25, |
||||||
|
isDare: false, |
||||||
|
en: 'Describe your character in 5 words.', |
||||||
|
ua: 'Опиши свій характер 5-ма словами.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 26, |
||||||
|
isDare: true, |
||||||
|
en: 'Show your hobby with facial expressions and movements. Everyone must guess it. Whoever guessed should get a slap on the cheek.', |
||||||
|
ua: 'Показати своє хобі мімікою і рухами. Всі повинні його вгадати. Хто вгадав, має отримати по щоці.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 27, |
||||||
|
isDare: false, |
||||||
|
en: 'Have you ever followed someone?', |
||||||
|
ua: 'Ти колись слідкував за кимось?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 28, |
||||||
|
isDare: true, |
||||||
|
en: 'Tell about a time when you successfully took revenge on someone.', |
||||||
|
ua: 'Розкажи про випадок, коли ти комусь успішно відімстив.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 27, |
||||||
|
isDare: false, |
||||||
|
en: 'Tell about the channel that you immediately open when something new appears there.', |
||||||
|
ua: 'Розкажи про канал, який ти одразу відкриваєш, коли там з являється щось нове.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 28, |
||||||
|
isDare: true, |
||||||
|
en: 'Take any item and try to sell it to others, praising it.', |
||||||
|
ua: 'Візьми будь-який предмет і спробуй продати іншим, нахвалюючи його.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 29, |
||||||
|
isDare: false, |
||||||
|
en: 'Tell about the channel that you immediately open when something new appears there.', |
||||||
|
ua: 'Розкажи про канал, який ти одразу відкриваєш, коли там з являється щось нове.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 30, |
||||||
|
isDare: true, |
||||||
|
en: 'Lick your lips sexily and look at the participant across from you.', |
||||||
|
ua: 'Сексуально оближ губи і подивись на учасника навпроти тебе.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 31, |
||||||
|
isDare: false, |
||||||
|
en: 'Have you ever been dumped by a person you liked?', |
||||||
|
ua: 'Тебе колись кидала людина, яка тобі подобалась?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 32, |
||||||
|
isDare: true, |
||||||
|
en: 'Sit with an angry and sad face until the next round.', |
||||||
|
ua: 'Сиди зі злою та сумною міною до наступного раунда.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 33, |
||||||
|
isDare: false, |
||||||
|
en: 'Have you ever been dumped by a person you liked?', |
||||||
|
ua: 'Тебе колись кидала людина, яка тобі подобалась?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 34, |
||||||
|
isDare: true, |
||||||
|
en: 'Sit with an angry and sad face until the next round.', |
||||||
|
ua: 'Сидіть зі злою та сумною міною до наступного раунда.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 35, |
||||||
|
isDare: false, |
||||||
|
en: 'When was the last time you cried and why?', |
||||||
|
ua: 'Коли ти востаннє плакав(ла) і чому?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 36, |
||||||
|
isDare: true, |
||||||
|
en: 'Picture a popular person so that others will remember him.', |
||||||
|
ua: 'Зобрази популярну людину, щоб інші її відгадали.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 37, |
||||||
|
isDare: false, |
||||||
|
en: 'You are invited on a date. You really like this person. For what reasons can you not go on a date?', |
||||||
|
ua: 'Тебе запрошують на побачення. Ця людина тобі дуже подобається. По яким причинам ти можеш не піти на побачення?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 38, |
||||||
|
isDare: true, |
||||||
|
en: 'Picture a hen that suddenly laid an egg.', |
||||||
|
ua: 'Зобрази курку, яка раптом знесла яєчко.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 39, |
||||||
|
isDare: false, |
||||||
|
en: 'Tell the whole story of how you quarreled with someone.', |
||||||
|
ua: 'Розкажи всю історію, як ти з кимось сварився(лась).', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 40, |
||||||
|
isDare: true, |
||||||
|
en: 'Ask your partner for advice on how to please a guy/girl as realistically as possible.', |
||||||
|
ua: 'Максимально реалістично попроси у своєї половинки поради як сподобатись хлопцю/дівчині.', |
||||||
|
}, |
||||||
|
] |
||||||
|
|
||||||
|
export const crazy = [ |
||||||
|
{ |
||||||
|
id: 1, |
||||||
|
isDare: false, |
||||||
|
en: 'Would you sacrifice a loved one to earn 100 times more than you do now?', |
||||||
|
ua: 'Ти б пожертував(ла) близькою людиною, щоб заробляти в 100 разів більше, ніж зараз?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 2, |
||||||
|
isDare: true, |
||||||
|
en: 'Dance for the next 20 seconds with any song.', |
||||||
|
ua: 'Танцюй протягом 20 секунд під музику.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 3, |
||||||
|
isDare: false, |
||||||
|
en: "What's the most embarrassing thing you've Googled?", |
||||||
|
ua: "Найсором'язливіше, що ти шукав в Google?", |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 4, |
||||||
|
isDare: true, |
||||||
|
en: "Call a friend and sing 'Happy Birthday' to them, regardless of whether it's their birthday or not.", |
||||||
|
ua: "Подзвони другові і заспівай 'З днем народження' незалежно від його дати народження.", |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 5, |
||||||
|
isDare: false, |
||||||
|
en: "Have you ever intentionally ruined someone else's relationship, and if so, why?", |
||||||
|
ua: 'Ти коли-небудь умисно руйнував відносини інших людей, і якщо так, чому?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 6, |
||||||
|
isDare: true, |
||||||
|
en: 'Say "Koo-koo" to the player on your right after your turn is over.', |
||||||
|
ua: 'Скажи "Ку-ку" учаснику справа від тебе після кожного завершення твого ходу.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 7, |
||||||
|
isDare: true, |
||||||
|
en: "Record a dramatic monologue confessing to a fake crime and send it to a friend without telling them it's a joke.", |
||||||
|
ua: 'Запиши драматичний монолог, визнаючись у фіктивному злочині, і відправ його другові, не вказавши, що це жарт.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 8, |
||||||
|
isDare: false, |
||||||
|
en: 'How, why and whom you cruelly offended?', |
||||||
|
ua: 'Як, чому і кого ти жорстоко образив?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 9, |
||||||
|
isDare: true, |
||||||
|
en: "Send a text to your crush confessing your feelings (even if it's just for fun).", |
||||||
|
ua: 'Напиши в особисті 10-му своєму підписнику "В мене погані новини для тебе" і не відповідай 24 години.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 10, |
||||||
|
isDare: false, |
||||||
|
en: 'Did you cheat on someone? If so, does anyone know about it?', |
||||||
|
ua: 'Ти комусь зраджував(ла)? Якщо так, чи знає хтось про це?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 11, |
||||||
|
isDare: true, |
||||||
|
en: 'Wrap your socks around with the participant on the left to greet you.', |
||||||
|
ua: 'Обіняйся носками з учасником зліва віт тебе.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 12, |
||||||
|
isDare: false, |
||||||
|
en: 'Є людина, яку ти ненавидиш, але вона про це не знає?', |
||||||
|
ua: "Is there a person you hate, but they don't know it?", |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 13, |
||||||
|
isDare: true, |
||||||
|
en: 'Grunt every 30 seconds until the end of the game.', |
||||||
|
ua: 'Хрюкай до кінця гри кожні 30 секунд.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 14, |
||||||
|
isDare: false, |
||||||
|
en: "What's the most rebellious thing you did as a teenager?", |
||||||
|
ua: 'Що найбільш хуліганське ти зробив(ла) в дитинстві?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 15, |
||||||
|
isDare: true, |
||||||
|
en: 'Create a silly rap about the person to your right.', |
||||||
|
ua: 'Заспівай дурний реп про особу справа від тебе.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 16, |
||||||
|
isDare: false, |
||||||
|
en: 'Do you have a romantic or sexual fantasy about one of the participants?', |
||||||
|
ua: 'Моєш романтичну чи сексуальну фантазію про когось з учасників?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 17, |
||||||
|
isDare: true, |
||||||
|
en: 'Act like a certain animal until your next turn. Others have to guess the animal.', |
||||||
|
ua: 'Ведіть себе як собака до свого наступного ходу.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 18, |
||||||
|
isDare: false, |
||||||
|
en: 'You became invisible for a day. What will you do?', |
||||||
|
ua: 'Ти невидимка на один день. Що будеш зробили?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 19, |
||||||
|
isDare: true, |
||||||
|
en: 'Send a strange sound to the third person on your social media friends list.', |
||||||
|
ua: 'Відправ дивний звук третій людині, на яку ти підписаний(на)', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 20, |
||||||
|
isDare: false, |
||||||
|
en: 'Picture your dream job.', |
||||||
|
ua: 'Зобрази роботи мрії.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 21, |
||||||
|
isDare: true, |
||||||
|
en: 'Post something embarrassing on your social media for the next 30 minutes.', |
||||||
|
ua: 'Добав в сторіз щось сором’язливе на 1 хв.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 22, |
||||||
|
isDare: false, |
||||||
|
en: 'What’s the most embarrassing thing you’ve said in the heat of the moment?', |
||||||
|
ua: 'Що ти "ляпав(ла)" не те в пориві емоцій?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 23, |
||||||
|
isDare: true, |
||||||
|
en: 'Sing a song loudly and out of tune.', |
||||||
|
ua: 'Співай що завгодно наступні 10 секунд.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 24, |
||||||
|
isDare: false, |
||||||
|
en: "There were times when you were hinted at sex, but you didn't understand the hint?", |
||||||
|
ua: 'Були моменти, коли тобі натякали на секс, али ти не зрозумів(ла) натяк?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 25, |
||||||
|
isDare: true, |
||||||
|
en: 'Take a goofy selfie and set it as your profile picture for the next hour.', |
||||||
|
ua: 'Зроби невдале селфі і постав на аву на 1 годину.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 26, |
||||||
|
isDare: false, |
||||||
|
en: 'Was there a time when you wanted sex and were refused?', |
||||||
|
ua: 'Чи був момент, коли ти хотів(ла) сексу, а тобі не дали?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 27, |
||||||
|
isDare: true, |
||||||
|
en: 'Send a message "I want it, and you?" 5th in your contact list.', |
||||||
|
ua: 'Відправ повідомлення "Я хочу це, а ти?" 5-му в своєму списку контактів.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 28, |
||||||
|
isDare: false, |
||||||
|
en: 'Would you go naked for a week for 100K hryvnias?', |
||||||
|
ua: 'Ти б ходив ходив(ла) на протязі тижня голим(голою) за 100К гривень?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 29, |
||||||
|
isDare: true, |
||||||
|
en: 'Take a selfie with a taxi driver, bus driver, cashier or a random passerby. Send the proof in your chat or group later.', |
||||||
|
ua: 'Зроби селфі з таксистом, водієм маршрутки, касиркою або з випадковим перехожим. Потім покажеш доказ.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 30, |
||||||
|
isDare: false, |
||||||
|
en: 'What is the most unethical thing you have seen in your life?', |
||||||
|
ua: 'Назви найбільш неетична річ, яку ти бачив(ла) в своєму житті.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 31, |
||||||
|
isDare: true, |
||||||
|
en: 'Add to any social media something that makes you feel ashamed for 10 minutes', |
||||||
|
ua: 'Добав в любу соц. мережу щось, що викликає в тобі сором на 10 хв.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 32, |
||||||
|
isDare: false, |
||||||
|
en: 'Was there a one-night stand? If so, how was it?', |
||||||
|
ua: 'Був роман на одну ніч? Якщо так, то як це було?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 33, |
||||||
|
isDare: false, |
||||||
|
en: 'Have you ever been punched in the face?', |
||||||
|
ua: 'Ти колись отримував(ла) в лице?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 34, |
||||||
|
isDare: false, |
||||||
|
en: 'When was the last time you shaved your anus?', |
||||||
|
ua: 'Коли ти останній раз брив(ла) в ділянці анального отвору?', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 35, |
||||||
|
isDare: true, |
||||||
|
en: 'Fulfill the wish made by the youngest participant.', |
||||||
|
ua: 'Виконай бажання, яке тобі загадає наймолодший учасник.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 36, |
||||||
|
isDare: false, |
||||||
|
en: 'Tell about the strangest act that a person has done in a drunken state in your memory.', |
||||||
|
ua: "Розкажи найдивніший вчинок, який зробила людина в нетверезому стані на твоїй пам'яті.", |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 37, |
||||||
|
isDare: true, |
||||||
|
en: 'Go live with a funny mask.', |
||||||
|
ua: 'Почни трансляцію у прямому ефірі з смішною маскою.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 38, |
||||||
|
isDare: false, |
||||||
|
en: 'Now you can be asked any one question.', |
||||||
|
ua: 'Зараз тобі можуть задати любе одне питання.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 39, |
||||||
|
isDare: true, |
||||||
|
en: 'Roar when others laugh. The desire is valid until you choose another action.', |
||||||
|
ua: 'Каркай, коли інші сміються. Бажання дійсне поки не вибереш іншу дію.', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 40, |
||||||
|
isDare: false, |
||||||
|
en: 'Name an unusual place you had sex.', |
||||||
|
ua: 'Назви незвичне місце, в якому у тебе був секс.', |
||||||
|
}, |
||||||
|
] |
@ -0,0 +1 @@ |
|||||||
|
export * from './storage.service'; |
@ -0,0 +1,34 @@ |
|||||||
|
import AsyncStorage from '@react-native-async-storage/async-storage' |
||||||
|
import { StorageKey } from '../typing' |
||||||
|
|
||||||
|
export class StorageService { |
||||||
|
constructor() { |
||||||
|
this.init() |
||||||
|
} |
||||||
|
|
||||||
|
private init() {} |
||||||
|
|
||||||
|
public async get(key: StorageKey) { |
||||||
|
try { |
||||||
|
const encode = await AsyncStorage.getItem(key) |
||||||
|
if (encode) { |
||||||
|
return JSON.parse(encode) |
||||||
|
} else { |
||||||
|
return null |
||||||
|
} |
||||||
|
} catch (error) { |
||||||
|
console.error('error get from async storage', error) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public async set(key: StorageKey, data: any) { |
||||||
|
try { |
||||||
|
const encode = JSON.stringify(data) |
||||||
|
await AsyncStorage.setItem(key, encode) |
||||||
|
} catch (error) { |
||||||
|
console.error('error set to async storage', error) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
export const storageService = new StorageService() |
@ -0,0 +1,4 @@ |
|||||||
|
export enum ChoiceType { |
||||||
|
Truth = 'question', |
||||||
|
Dare = 'dare', |
||||||
|
} |
@ -1,4 +1,4 @@ |
|||||||
export enum TypeCustom { |
export enum CustomType { |
||||||
Questions = 'questions', |
Questions = 'questions', |
||||||
Dares = 'dares', |
Dares = 'dares', |
||||||
} |
} |
@ -0,0 +1,5 @@ |
|||||||
|
export enum GuestRouteKey { |
||||||
|
Onboarding = 'Onboarding', |
||||||
|
LanguageSelect = 'LanguageSelect', |
||||||
|
Loading = 'Loading', |
||||||
|
} |
@ -1,6 +1,11 @@ |
|||||||
export * from './route-keys.enum' |
export * from './guest-route-keys.enum' |
||||||
export * from './fonts.enum' |
export * from './fonts.enum' |
||||||
export * from './storage-key.enum' |
export * from './storage-key.enum' |
||||||
export * from './language.enum' |
export * from './language.enum' |
||||||
export * from './products.enum'; |
export * from './products.enum' |
||||||
export * from './type-custom.enum'; |
export * from './custom-type.enum' |
||||||
|
export * from './guest-route-keys.enum' |
||||||
|
export * from './nav-group.enum' |
||||||
|
export * from './user-route-keys.enum' |
||||||
|
export * from './package-type.enum' |
||||||
|
export * from './choice-type.enum'; |
||||||
|
@ -0,0 +1,4 @@ |
|||||||
|
export enum NavGroup { |
||||||
|
User = 'u', |
||||||
|
Guest = 'g' |
||||||
|
} |
@ -0,0 +1,6 @@ |
|||||||
|
export enum PackageType { |
||||||
|
Under18 = 'under18', |
||||||
|
Light = 'light', |
||||||
|
Crazy = 'crazy', |
||||||
|
Custom = 'custom', |
||||||
|
} |
@ -1,5 +1,3 @@ |
|||||||
export enum ProductsEnum { |
export enum ProductsEnum { |
||||||
All = 'ALL', |
|
||||||
Under18 = 'un18', |
|
||||||
Crazy = 'Crz', |
Crazy = 'Crz', |
||||||
} |
} |
||||||
|
@ -1,7 +1,11 @@ |
|||||||
export enum StorageKey { |
export enum StorageKey { |
||||||
OnBoarding = 'ONBOARDING_END', |
FinishOnBoarding = 'FinishOnBoarding', |
||||||
Language = 'LANG_SELECTED', |
Language = 'Language', |
||||||
Purchases = 'Purchases', |
Purchases = 'Purchases', |
||||||
Products = 'Products', |
Products = 'Products', |
||||||
CustomPackage = 'CustomPackage', |
CustomPackage = 'CustomPackage', |
||||||
|
ShuffleCustomPackage = 'ShuffleCustomPackage', |
||||||
|
Players = 'Players', |
||||||
|
LimitForCrazy = 'limit', |
||||||
|
SavedSteps = 'SavedSteps', |
||||||
} |
} |
||||||
|
@ -1,8 +1,6 @@ |
|||||||
export enum RouteKey { |
export enum UserRouteKey { |
||||||
Onboarding = 'Onboarding', |
|
||||||
LanguageSelect = 'LanguageSelect', |
|
||||||
Game = 'Game', |
Game = 'Game', |
||||||
Loading = 'Loading', |
Players = 'Players', |
||||||
Packages = 'Packages', |
Packages = 'Packages', |
||||||
TruthOrDare = 'TruthOrDare', |
TruthOrDare = 'TruthOrDare', |
||||||
CustomPackage = 'CustomPackage', |
CustomPackage = 'CustomPackage', |
@ -1,9 +1,9 @@ |
|||||||
import { Language } from "../enums"; |
import { Language } from '../enums' |
||||||
|
|
||||||
export interface GameItem { |
export interface GameItem { |
||||||
id: number; |
id: number |
||||||
isDare: boolean; |
isDare: boolean |
||||||
en: Language; |
en: Language |
||||||
ua: Language; |
ua: Language |
||||||
hi: Language; |
hi?: Language |
||||||
} |
} |
||||||
|
@ -0,0 +1 @@ |
|||||||
|
export * from './use-animation-block.hook'; |
@ -0,0 +1,53 @@ |
|||||||
|
import { useEffect, useRef } from 'react' |
||||||
|
import { Animated } from 'react-native' |
||||||
|
|
||||||
|
export const useAnimationBlock = (onDelete: any) => { |
||||||
|
const deleteBlockAnim = useRef(new Animated.Value(0)).current |
||||||
|
const viewBlockAnim = useRef(new Animated.Value(0)).current |
||||||
|
|
||||||
|
const onPressDelete = () => { |
||||||
|
Animated.timing(deleteBlockAnim, { |
||||||
|
toValue: 1, |
||||||
|
duration: 200, |
||||||
|
useNativeDriver: true, |
||||||
|
}).start(() => deleteBlockAnim.setValue(0)) |
||||||
|
|
||||||
|
setTimeout(onDelete, 200) |
||||||
|
} |
||||||
|
|
||||||
|
useEffect(() => { |
||||||
|
Animated.timing(viewBlockAnim, { |
||||||
|
toValue: 1, |
||||||
|
duration: 0, |
||||||
|
useNativeDriver: true, |
||||||
|
}).start() |
||||||
|
}, []) |
||||||
|
|
||||||
|
const animStyle = { |
||||||
|
transform: [ |
||||||
|
{ |
||||||
|
translateX: deleteBlockAnim.interpolate({ |
||||||
|
inputRange: [0, 1], |
||||||
|
outputRange: [0, 400], |
||||||
|
}), |
||||||
|
}, |
||||||
|
{ |
||||||
|
translateY: viewBlockAnim.interpolate({ |
||||||
|
inputRange: [0, 1], |
||||||
|
outputRange: [-50, 0], |
||||||
|
}), |
||||||
|
}, |
||||||
|
], |
||||||
|
opacity: |
||||||
|
viewBlockAnim || |
||||||
|
deleteBlockAnim.interpolate({ |
||||||
|
inputRange: [0, 1], |
||||||
|
outputRange: [1, 0], |
||||||
|
}), |
||||||
|
} |
||||||
|
|
||||||
|
return { |
||||||
|
onPressDelete, |
||||||
|
animStyle, |
||||||
|
} |
||||||
|
} |
@ -1,2 +1,3 @@ |
|||||||
export * from './screens' |
export * from './screens' |
||||||
export * from './atoms' |
export * from './atoms' |
||||||
|
export * from './animation'; |
||||||
|
@ -1 +1,2 @@ |
|||||||
export * from './truth-or-dare-view' |
export * from './truth-or-dare-view' |
||||||
|
export * from './player-field.component'; |
||||||
|
@ -0,0 +1,49 @@ |
|||||||
|
import React, { FC } from 'react' |
||||||
|
import { useTranslation } from 'react-i18next' |
||||||
|
import { StyleSheet, TouchableOpacity } from 'react-native' |
||||||
|
import { FormTextControll, Icon, colors } from '~module/common' |
||||||
|
|
||||||
|
interface IProps { |
||||||
|
value: string |
||||||
|
onChange: (val: string) => void |
||||||
|
onDelete: () => void |
||||||
|
} |
||||||
|
|
||||||
|
export const PlayerField: FC<IProps> = ({ value, onChange, onDelete }) => { |
||||||
|
const { t } = useTranslation() |
||||||
|
|
||||||
|
const renderClear = () => ( |
||||||
|
<TouchableOpacity style={styles.clearIcon} onPress={onDelete}> |
||||||
|
<Icon name={'clear'} size={24} color={colors.textPrimary} /> |
||||||
|
</TouchableOpacity> |
||||||
|
) |
||||||
|
|
||||||
|
return ( |
||||||
|
<FormTextControll |
||||||
|
value={value} |
||||||
|
onChange={onChange} |
||||||
|
renderPostfix={renderClear} |
||||||
|
inputProps={{ |
||||||
|
placeholder: t('customPack.placeholder'), |
||||||
|
placeholderTextColor: colors.darkPurple, |
||||||
|
}} |
||||||
|
inputStyle={styles.input} |
||||||
|
/> |
||||||
|
) |
||||||
|
} |
||||||
|
|
||||||
|
const styles = StyleSheet.create({ |
||||||
|
input: { |
||||||
|
borderRadius: 60, |
||||||
|
backgroundColor: colors.lightPurple, |
||||||
|
borderWidth: 0, |
||||||
|
fontSize: 18, |
||||||
|
color: colors.purple, |
||||||
|
}, |
||||||
|
clearIcon: { |
||||||
|
position: 'absolute', |
||||||
|
top: 3, |
||||||
|
right: 10, |
||||||
|
padding: 10, |
||||||
|
}, |
||||||
|
}) |
@ -0,0 +1,22 @@ |
|||||||
|
import React, { FC } from 'react' |
||||||
|
import { StyleSheet } from 'react-native' |
||||||
|
import { useSelector } from 'react-redux' |
||||||
|
import { Font, Txt } from '~module/common' |
||||||
|
import { selectCurrentPlayer } from '~store/slices' |
||||||
|
|
||||||
|
interface IProps {} |
||||||
|
|
||||||
|
export const PlayerName: FC<IProps> = () => { |
||||||
|
const playerName = useSelector(selectCurrentPlayer) |
||||||
|
|
||||||
|
return <Txt style={styles.playerName}>{playerName}</Txt> |
||||||
|
} |
||||||
|
|
||||||
|
const styles = StyleSheet.create({ |
||||||
|
playerName: { |
||||||
|
fontFamily: Font.Roboto700, |
||||||
|
textAlign: 'center', |
||||||
|
fontSize: 24, |
||||||
|
lineHeight: 34, |
||||||
|
}, |
||||||
|
}) |