GH GambleHub

Гузаронидани асъор дар интерфейс

1) Принсипҳо

1. Аввал маъно, баъд UI. Асъори ҳисоби алоҳида (ҳақиқати баҳисобгирӣ) аз намоиши асъор (роҳат) ва асъори муомилот (табдили воқеии пул).
2. Номуайянии сифр. Рамзи + аломатро дар хатари нофаҳмиҳо нишон диҳед ('$ $', 'CA $', 'MXN', 'R $'). Барои ₴/₸/₼, ҳамеша рамзро дар тафсилот илова кунед.
3. Беайбии курс. Шумо мебинед: манбаи курс, лаҳзаи навсозии охирин, оё комиссияҳо/паҳншавӣ дохил карда мешаванд.
4. Устувории вуруд. Гузариши асъор набояд арзишҳои вурудро бидуни розигии возеҳ (бахусус дар шакли қурб/пасандоз) "ҷаҳида" кунад.
5. Маҳаллисозии форматҳо. Delimiters, фосилаҳо, аломати асъор - аз рӯи маҳалли корбар; саҳеҳӣ - аз рӯи асъор.


2) Моделҳои гузариш

Танҳо намоиш - Ҳама ҳисобҳо бо пули ҳисоб боқӣ мемонанд, UI муодили онро бо асъори интихобшуда нишон медиҳад. Барои каталог, профил, андоза истифода баред.
Гибрид (табдили мулоим): намоиш дар асъори интихобшуда + тасдиқи амалиёт бо пули ҳисоб (ҳарду нишон диҳед).
Амалиёт (табдилдиҳии сахт): корбар асъори транзаксияро (амонат/бозхонд/қурб) иваз мекунад. Мо ба курсҳои возеҳ, комиссияҳо, вақти ислоҳ ниёз дорем.

Қоида: бо нобаёнӣ - танҳо намоиш ва табдили "сахт" -ро танҳо дар ҷараёни мувофиқ (нақд, бозпас гирифтан, интиқоли маблағ) фаъол кунед.


3) Назорат ва ҷойгиркунӣ

Гузариши асъор дар сарлавҳа/панели профил (тасвири "₴/€/$" ё рамзи асъор).
Интихобкунанда: ҷустуҷӯ аз рӯи рамз/ном/рамз; асъори интихобшуда/зуд-зуд - боло.
Дар дохили шаклҳо (амонат/меъёри): селектори паймон ба ҳуқуқи майдони маблағ, дар паҳлӯи ишораи "≈ дар XXX".
Намунаи мобилӣ: варақи поёнӣ бо рӯйхат ва вуруд барои филтр.

html
<button aria-haspopup="listbox" aria-expanded="false" class="currency-switch">UAH</button>
<ul role="listbox" class="currency-menu" hidden>
<li role="option" aria-selected="true">UAH — ₴</li>
<li role="option">USD — US$</li>
<li role="option">EUR — €</li>
<li role="option">TRY — ₺</li>
</ul>

4) Форматкунӣ ва дақиқӣ

Воҳидҳои хурд: Миқдори мағозаҳоро дар воҳидҳои ҳадди аққал (пенни, сент, сатоши).

Ҷойҳои даҳӣ аз рӯи асъор:
  • 0: JPY, KRW, CLP
  • 2: ДОЛЛАРИ ИМА, EUR, UAH, TRY
  • 3 +: баъзе асъорҳои ZAR (2), KWD (3), крипто (4-8)
  • Cryptocurrencies: То 8 аломатро нишон диҳед (дақиқии динамикӣ, аммо бо сатҳи пасттар барои хондан).
  • Рақамҳои ҷадвал: 'ҳарф-вариант-рақам: ҷадвал-рақамҳо;' барои ҳамоҳангсозии сутун.
Порчаи Intl:
js const fmt = (amountMinor, currency, locale) => {
const fraction = { JPY:0, KRW:0, KWD:3 }[currency]?? 2;
return new Intl.NumberFormat(locale, { style:'currency', currency, minimumFractionDigits:fraction, maximumFractionDigits:fraction })
.format(amountMinor / 10fraction);
};
fmt(200000, 'UAH', 'uk-UA'); // 2 000,00 ₴

5) Курсҳо ва навсозиҳо

Манбаъ: провайдери курсро ислоҳ кунед (нархгузории дохилӣ/бонк/FX-API).
Кэш: Курсҳои навсозиро бо басомади оқилона (масалан, ҳар 60-300 сония) + навсозиҳои афзоянда оид ба талабот.
Вақти ислоҳ: Намоиши 'N дақиқа пеш навшуда' ва вақти ислоҳ дар кассир.
Паҳн/Комиссия: Хати возеҳро нишон диҳед: "Меъёри 1 доллари ИМА = 36. 60 UAH (Паҳн 1 дохил. 5%)».
Яклухткунӣ: бонк ё муқаррарӣ - якеро интихоб кунед ва онро дар сиёсат ислоҳ кунед.


6) Матн ва шарҳҳои UX

Эквивалент: "≈ 52. 10 €" - дар паҳлӯи маблағ, ранги хомӯш, дар вақти воқеӣ нав карда мешавад.
Далелҳои ҳуқуқӣ: "Меъёри воқеӣ ва комиссия дар қадами тасдиқ сабт хоҳад шуд".
Рамзҳои дароз: истифодаи асбобҳо/сатри дуввум: "Доллари ИМА - доллари ИМА".
Табдил дар сабад: "умумӣ" -ро бидуни шарҳ иваз накунед; хати ҳисобкуниро нишон диҳед.


7) Дастрасӣ (A11y)

'role = "listbox/option"' дар селектори асъор.
Дастгирии клавиатура: тирҳо, Воридшавӣ, Намуди пешакӣ аз рӯи рамз/ном.
Хониш барои SR: "Нишон додани асъор: UAH - hryvnia украинӣ".
Ранг ≠ воситаи ягонаи маъно (ҳамеша рамз/матн мавҷуд аст).
RTL: рақамҳо/рамзҳо дар 'dir = "ltr"' дар дохили сатрҳои арабӣ.


8) Иҷро ва кэшкунӣ

Курсҳо - дар хотира + Маҳалли нигоҳдорӣ бо TTL (масалан, 5 дақиқа).
Навсозиҳои партия: эквивалентҳоро дар маҷмӯаҳо ҳисоб кунед (RequEst ManimATION Frame, debunks 100-200 ms).
Вақте ки курс тағир меёбад <ҳадди ниҳоӣ (масалан, 0. 1%).


9) Хусусиятҳои IGaming

Асъори ҳисоб - ҳисоботи асосӣ (пасандозҳо, бақия, таърих).
Қурби асъор: одатан = пули ҳисоб; агар дигаре нишон дода шуда бошад, блоки дукарата нишон диҳед: "Қарзи X XXX бо доллари ИМА (≈ Y YYY дар UAH)".
Танзими ҳисоббаробаркунӣ: Бурдҳо бо суръати ҳангоми ҳисоббаробаркунӣ иваз карда мешаванд, на гаравҳо - инро бояд дар тафсилоти купон/таърих дида шавад.
Пасандоз/бозхонд: меъёр ва комиссияи PSP/бонк - дар хатти алоҳида; ETA бо усул.
Ҳудуди масъулияти бозӣ: бо асъори суратҳисоб муайян карда мешавад; Агар UI бо пули дигар бошад, ҳарду арзишро нишон диҳед.
Мусобиқаҳо ва тӯҳфаҳо: пули фонди мукофотӣ муқаррар карда мешавад; ҳангоми намоиш, эквивалент тахминӣ, ишора карда мешавад.


10) Антипаттернҳо

Тағирёбии арзиши "Magic" дар майдони вуруд ҳангоми иваз кардани асъор - бидуни розигии возеҳ.
Истифодаи як аломати "$" бидуни рамзи кишвар.
Комиссияи пинҳон дар дониш (ҳеҷ сатр дар бораи паҳн).
Омезиши маҳал ва асъор (формати 'en-US' барои 'UAH').
Дақиқии сахти "2 аломат" барои JPY/KRW ё "8 аломат" барои ҳама cryptocurrencies.
Ҳисобкунии амалиётҳои таърихӣ "ретроактивӣ" бо қурби ҷории асъор - бидуни аломати "ҳисобкунӣ".


11) Нишонаҳои системаи тарроҳӣ (мисол)

json
{
"currency": {
"default": "UAH",
"displayList": ["UAH","USD","EUR","TRY","PLN","BRL","MXN"],
"fractions": { "JPY":0, "KRW":0, "KWD":3, "BTC":8 },
"showCodeWithSymbol": ["USD","CAD","AUD","NZD"],
"approxPrefix": "≈ "
},
"format": {
"tabularNums": true,
"grouping": "locale",
"negative": "−"
},
"fx": {
"ttlSec": 300,
"changeThresholdPct": 0.1,
"showSpread": true
}
}

12) Снайперҳо

Гузариш ба асъор (Реаксия, контекст + Intl)

tsx import { createContext, useContext, useState, useMemo } from 'react';

type Cur = 'UAH'    'USD'    'EUR'    'TRY';
const CurrencyCtx = createContext<{cur:Cur,set:(c:Cur)=>void, rate:(from:Cur,to:Cur)=>number}>({cur:'UAH',set:()=>{},rate:()=>1});

export function CurrencyProvider({children}:{children:React.ReactNode}){
const [cur, set] = useState<Cur>('UAH');
// fx: получить из кэша/апи; здесь — заглушка const table = { UAH:{USD:0.027,EUR:0.025,TRY:0.89,UAH:1}, USD:{UAH:36.6,EUR:0.93,TRY:33.0,USD:1}, EUR:{UAH:39.2,USD:1.07,TRY:35.4,EUR:1}, TRY:{UAH:1.12,USD:0.030,EUR:0.028,TRY:1} };
const rate = (from:Cur,to:Cur)=> table[from][to];
const value = useMemo(()=>({cur, set, rate}),[cur]);
return <CurrencyCtx.Provider value={value}>{children}</CurrencyCtx.Provider>;
}

export function useCurrency(){ return useContext(CurrencyCtx); }

export function Money({minor, iso}:{minor:number, iso:Cur}){
const { cur, rate } = useCurrency();
const fraction = { JPY:0, KRW:0, KWD:3 }[cur as any]?? 2;
const v = (minor/10fraction) rate(iso, cur);
return <span style={{fontVariantNumeric:'tabular-nums'}}>{new Intl.NumberFormat(undefined,{style:'currency',currency:cur, minimumFractionDigits:fraction, maximumFractionDigits:fraction}).format(v)}</span>;
}

Намоиши дугона (Табдили амалиётӣ)

html
<div class="amount">
<label>Сумма депозита</label>
<div class="row">
<input type="number" inputmode="decimal" aria-describedby="fxnote">
<select aria-label="Валюта операции">
<option>USD</option><option>EUR</option><option>UAH</option>
</select>
</div>
<small id="fxnote">≈ 2 000,00 ₴ · Курс будет зафиксирован на следующем шаге</small>
</div>

13) Метрҳо

Таъхири FX: вақт аз гузариши асъор то навсозии ҳамаи соҳаҳо (ҳадаф ≤ 150 мс).
Меъёри дурустӣ: ҳиссаи зангҳо барои дастгирии "миқдори нодуруст" (<0). 2%).
Нишон додани номувофиқатии ҳисоб: ҳодисаҳое, ки корбар асъорро омехта мекунад (ишораи камтар).
Маслиҳатҳои курси CTR: кликҳои "Бештар дар бораи курс/комиссия".
Тахфифи пули нақд барои табдилдиҳӣ: ҳиссаи нокомиҳо бо тағирёбии "ногаҳонӣ" дар миқдор.


14) Рӯйхати назоратии QA

Маънӣ ва шаффофият

  • Асъори суратҳисоб ва/ё муомилот дар ҳама ҷо намоён аст.
  • $ рамзи кишварро нишон медиҳад (доллари ИМА, CA $ ва ғайра).
  • Хате дар бораи суръат, санаи навсозӣ ва паҳн/комиссия мавҷуд аст.

Формат ва дақиқӣ

  • Ҷойҳои даҳӣ бо асъор (JPY = 0, KWD = 3, крипто = то 8).
  • Маҳалли рақам/асъор ба забони UI мувофиқат мекунад.
  • Амалиётҳои таърихӣ "бо қурби ҷории" бидуни қайд ҳисоб карда намешаванд.

Рафтор

  • Табдили асъор вурудро бидуни тасдиқ тағйир намедиҳад.
  • Эквиваленти "≈" ба осонӣ ва зуд нав карда мешавад.
  • Селектори асъор ба клавиатура дастрас аст, Type-пешакӣ кор мекунад.

Хусусиятҳои IGaming

  • Дар купон: пардохт/бурд ва асъори онҳо имзо шудаанд, меъёри собит нишон дода шудааст.
  • То ба охир: пардохтҳои PSP/бонк алоҳида дида мешаванд.
  • Дар маҳдудиятҳо: ҳарду арзишҳо нишон дода шудаанд (ҳисоб ва нишон дода мешаванд).

RTL/A11y

  • Рамзҳо/маблағҳо дар RTL дуруст хонда мешаванд ('dir = "ltr"' барои рақамҳо).
  • Нишондиҳандаҳои контраст ва фокус ба АА мувофиқанд.

15) Ҳуҷҷатгузорӣ дар системаи тарроҳӣ

Компонентҳо: 'Currency

Сиёсати дақиқ/яклухткунӣ ва функсияи ягонаи форматкунӣ.
Қоидаҳо: "ҳангоми намоиш танҳо", "ҳангоми табдили сахт", "чӣ гуна нишон додани паҳн".
Истинод ба асъор: рамз, рамз, рақамҳо, бархӯрдҳои аломатҳои минтақавӣ.
Галерея мекунад/Накунед: "$ бе рамз", вуруди худкор, комиссияҳои пинҳон.


Хулосаи мухтасар

Гузаронидани асъор танҳо як селектори ₴/€/$ нест. Ин як намунаи равшани пул (асъори ҳисоб vs display vs operation), меъёри одилона бо комиссия, форматкунии дуруст аз рӯи маҳал ва рафтори дақиқи майдонҳои вуруд. Қоидаҳоро дар системаи тарроҳӣ ислоҳ кунед, форматкунӣ ва кэшкунии курсҳоро автоматӣ кунед - ва корбарон бо боварӣ бо миқдор кор мекунанд, рақамҳоро шубҳа намекунанд ва дар паҳншавии "ноаён" пулро аз даст намедиҳанд.

Contact

Тамос гиред

Барои саволҳо ё дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Оғози интегратсия

Email — муҳим аст. Telegram ё WhatsApp — ихтиёрӣ.

Номи шумо ихтиёрӣ
Email ихтиёрӣ
Мавзӯъ ихтиёрӣ
Паём ихтиёрӣ
Telegram ихтиёрӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиёрӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.