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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -1,3 +0,0 @@
|
||||
<resources> |
||||
<color name ='iconBackground'>#37296B</color> |
||||
</resources> |
@ -1,4 +0,0 @@
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<resources> |
||||
<color name="splashprimary">#37296B</color> |
||||
</resources> |
@ -0,0 +1,4 @@
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<resources> |
||||
<color name="ic_launcher_background">#37296B</color> |
||||
</resources> |
@ -1,3 +1,3 @@
@@ -1,3 +1,3 @@
|
||||
<resources> |
||||
<string name="app_name">Truth</string> |
||||
<string name="app_name">Truth or Dare</string> |
||||
</resources> |
||||
|
@ -1,27 +1,29 @@
@@ -1,27 +1,29 @@
|
||||
import { CustomPack } from '~i18n/interfaces/custom-pack.interface' |
||||
|
||||
export const customPack: CustomPack = { |
||||
label: 'Власний пакет', |
||||
title: 'Створити власний пакет', |
||||
label: 'Мій пакет', |
||||
title: 'Створити свій пакет', |
||||
description: |
||||
'Створіть свій власний пакет з правд та дій. Все залежить від вашої уяви!', |
||||
'Створи свій пакет з питань та дій. Все залежить від твоєї уяви!', |
||||
editor: 'Редактор', |
||||
placeholder: 'Пишіть тут...', |
||||
placeholder: 'Писати тут...', |
||||
addTruth: 'Додати питання', |
||||
addDare: 'Додати дію', |
||||
viewTruths: 'Питання', |
||||
viewDares: 'Дії', |
||||
alertCreateTitle: 'Чудово! 🎉', |
||||
alertCreateDesc: 'Зіграйте прямо зараз!', |
||||
alertSaveTitle: 'Ви маєте незбережені зміни', |
||||
alertCreateDesc: 'Зіграй прямо зараз!', |
||||
alertSaveTitle: 'У тебе незбережені зміни', |
||||
alertSaveDesc: 'Зберегти зміни?', |
||||
alertSaveNo: 'Ні', |
||||
alertSaveYes: 'Так', |
||||
alertEmptyTitle: 'Ой! 👀', |
||||
alertEmptyTruthDesc: |
||||
'Ваш список правд порожній. Вам потрібно мати хоча б 1 правду', |
||||
'Твій список питань порожній. Потрібно мати хоча б 1 питання.', |
||||
alertEmptyDaresDesc: |
||||
'Ваш список викликів порожній. Вам потрібно мати хоча б 1 виклик', |
||||
'Твій список дій порожній. Потрібно мати хоча б 1 дії.', |
||||
editorBtn: 'Редактор правд та дій', |
||||
play: 'Грати', |
||||
addCustomTruth: 'Додати це питання до твого пакету?', |
||||
addCustomDare: 'Додати цю дію до твого пакету?', |
||||
} |
||||
|
@ -1,21 +1,18 @@
@@ -1,21 +1,18 @@
|
||||
|
||||
|
||||
export const onBoardingTranslationUa = { |
||||
step1: { |
||||
title: 'Ласкаво просимо!', |
||||
description: |
||||
'Дякуємо за завантаження. Тепер ви \n в найкращій грі для компанії або \n пограти з коханою людиною', |
||||
'Дякуємо за завантаження. Тепер ти \n в найкращій грі для компанії або \n пограти з коханою людиною', |
||||
}, |
||||
|
||||
step2: { |
||||
title: 'Розслабтеся та насолоджуйтеся грою', |
||||
title: 'Розслабся та насолоджуйся грою', |
||||
description: |
||||
'У цій грі є 5 рівнів "пікантності", деякі з яких розділені на ігри для пари або компанії. Все, що вам потрібно зробити, це додати гравців, і ви можете почати грати.\n P.S. Ви завжди можете створити власні питання та завдання', |
||||
'У цій грі є 3 рівня "пікантності". Все, що потрібно - це додати гравців.\n P.S. Ти завжди можеш створити власні питання та завдання', |
||||
}, |
||||
step3: { |
||||
title: 'Преміум версія!', |
||||
description: |
||||
'Надає необмежений доступ до пакетів Hard та режиму Extreme \nНасолоджуйтеся інтригуючими запитаннями та захоплюючими діями', |
||||
'Надає необмежений доступ до пакету "Сrazy". \nНасолоджуйся інтригуючими запитаннями та захоплюючими діями', |
||||
}, |
||||
}; |
||||
|
||||
} |
||||
|
@ -1,5 +1,3 @@
@@ -1,5 +1,3 @@
|
||||
export * from './use-nav.hook' |
||||
export * from './use-dispatch.hook' |
||||
export * from './use-events-listener.hook' |
||||
export * from './use-selector.hook' |
||||
export * from './use-form.hook' |
||||
|
@ -1,4 +0,0 @@
@@ -1,4 +0,0 @@
|
||||
import { useDispatch } from 'react-redux' |
||||
import { AppDispatch } from '../../../store/store' |
||||
|
||||
export const useAppDispatch = () => useDispatch<AppDispatch>() |
@ -1,5 +0,0 @@
@@ -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 @@
@@ -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 @@
@@ -0,0 +1 @@
|
||||
export * from './storage.service'; |
@ -0,0 +1,34 @@
@@ -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 @@
@@ -0,0 +1,4 @@
|
||||
export enum ChoiceType { |
||||
Truth = 'question', |
||||
Dare = 'dare', |
||||
} |
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
export enum TypeCustom { |
||||
export enum CustomType { |
||||
Questions = 'questions', |
||||
Dares = 'dares', |
||||
} |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
export enum GuestRouteKey { |
||||
Onboarding = 'Onboarding', |
||||
LanguageSelect = 'LanguageSelect', |
||||
Loading = 'Loading', |
||||
} |
@ -1,6 +1,11 @@
@@ -1,6 +1,11 @@
|
||||
export * from './route-keys.enum' |
||||
export * from './guest-route-keys.enum' |
||||
export * from './fonts.enum' |
||||
export * from './storage-key.enum' |
||||
export * from './language.enum' |
||||
export * from './products.enum'; |
||||
export * from './type-custom.enum'; |
||||
export * from './products.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 @@
@@ -0,0 +1,4 @@
|
||||
export enum NavGroup { |
||||
User = 'u', |
||||
Guest = 'g' |
||||
} |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
export enum PackageType { |
||||
Under18 = 'under18', |
||||
Light = 'light', |
||||
Crazy = 'crazy', |
||||
Custom = 'custom', |
||||
} |
@ -1,5 +1,3 @@
@@ -1,5 +1,3 @@
|
||||
export enum ProductsEnum { |
||||
All = 'ALL', |
||||
Under18 = 'un18', |
||||
Crazy = 'Crz', |
||||
} |
||||
|
@ -1,7 +1,11 @@
@@ -1,7 +1,11 @@
|
||||
export enum StorageKey { |
||||
OnBoarding = 'ONBOARDING_END', |
||||
Language = 'LANG_SELECTED', |
||||
FinishOnBoarding = 'FinishOnBoarding', |
||||
Language = 'Language', |
||||
Purchases = 'Purchases', |
||||
Products = 'Products', |
||||
CustomPackage = 'CustomPackage', |
||||
ShuffleCustomPackage = 'ShuffleCustomPackage', |
||||
Players = 'Players', |
||||
LimitForCrazy = 'limit', |
||||
SavedSteps = 'SavedSteps', |
||||
} |
||||
|
@ -1,8 +1,6 @@
@@ -1,8 +1,6 @@
|
||||
export enum RouteKey { |
||||
Onboarding = 'Onboarding', |
||||
LanguageSelect = 'LanguageSelect', |
||||
export enum UserRouteKey { |
||||
Game = 'Game', |
||||
Loading = 'Loading', |
||||
Players = 'Players', |
||||
Packages = 'Packages', |
||||
TruthOrDare = 'TruthOrDare', |
||||
CustomPackage = 'CustomPackage', |
@ -1,9 +1,9 @@
@@ -1,9 +1,9 @@
|
||||
import { Language } from "../enums"; |
||||
import { Language } from '../enums' |
||||
|
||||
export interface GameItem { |
||||
id: number; |
||||
isDare: boolean; |
||||
en: Language; |
||||
ua: Language; |
||||
hi: Language; |
||||
id: number |
||||
isDare: boolean |
||||
en: Language |
||||
ua: Language |
||||
hi?: Language |
||||
} |
@ -0,0 +1 @@
@@ -0,0 +1 @@
|
||||
export * from './use-animation-block.hook'; |
@ -0,0 +1,53 @@
@@ -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 @@
@@ -1,2 +1,3 @@
|
||||
export * from './screens' |
||||
export * from './atoms' |
||||
export * from './animation'; |
||||
|
@ -1 +1,2 @@
@@ -1 +1,2 @@
|
||||
export * from './truth-or-dare-view' |
||||
export * from './player-field.component'; |
||||
|
@ -0,0 +1,49 @@
@@ -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 @@
@@ -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, |
||||
}, |
||||
}) |