mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-04-22 21:47:56 +00:00
31a0f86382
Centralized common code into shared/ folder to eliminate duplication and improve maintainability across all three frontend projects (web, mobile, pezkuwi-sdk-ui). Changes: - Added token types and constants to shared/types/tokens.ts - TokenInfo, PoolInfo, SwapQuote, and other DEX types - KNOWN_TOKENS with HEZ, PEZ, wUSDT definitions - Token logos (🟡🟣💵) - Added Kurdistan color palette to shared/constants/ - Kesk, Sor, Zer, Spî, Reş color definitions - Added TOKEN_DISPLAY_SYMBOLS mapping (USDT vs wUSDT) - Updated blockchain configuration in shared/blockchain/polkadot.ts - Added beta testnet endpoint (wss://beta-rpc.pezkuwi.art) - Defined DEFAULT_ENDPOINT constant - Moved i18n to shared/i18n/ - Centralized translation files for 6 languages (EN, TR, KMR, CKB, AR, FA) - Added LANGUAGES configuration with RTL support - Created isRTL() helper function - Updated web and mobile to import from shared - web/src/types/dex.ts now re-exports from shared - web/src/contexts/PolkadotContext.tsx uses DEFAULT_ENDPOINT - mobile/src/i18n/index.ts uses shared translations - mobile/src/contexts/PolkadotContext.tsx uses DEFAULT_ENDPOINT - Updated shared/README.md with comprehensive documentation This architecture reduces code duplication and ensures consistency across all frontend projects.
56 lines
1.9 KiB
Markdown
56 lines
1.9 KiB
Markdown
# Shared Code
|
|
|
|
This directory contains code shared between web, mobile, and SDK UI applications.
|
|
|
|
## Structure
|
|
|
|
- **types/** - TypeScript type definitions and interfaces
|
|
- `blockchain.ts` - Blockchain-related types (WalletAccount, Transaction, etc.)
|
|
- `tokens.ts` - Token and DEX types (TokenInfo, PoolInfo, SwapQuote, etc.)
|
|
|
|
- **constants/** - Shared constants and configuration values
|
|
- `KNOWN_TOKENS` - Token definitions (HEZ, PEZ, USDT)
|
|
- `KURDISTAN_COLORS` - Color palette (Kesk, Sor, Zer, Spî, Reş)
|
|
- `SUPPORTED_LANGUAGES` - Available languages (EN, TR, KMR, CKB, AR, FA)
|
|
- `TOKEN_DISPLAY_SYMBOLS` - Display vs blockchain symbol mapping
|
|
|
|
- **blockchain/** - Blockchain-related utilities
|
|
- `polkadot.ts` - Polkadot/Substrate utilities and endpoints
|
|
- `DEFAULT_ENDPOINT` - Current blockchain endpoint (beta testnet)
|
|
|
|
- **i18n/** - Internationalization
|
|
- `locales/` - Translation files for 6 languages
|
|
- `LANGUAGES` - Language configurations with RTL support
|
|
- `translations` - All locale data
|
|
|
|
- **utils/** - Utility functions and helpers
|
|
- `formatting.ts` - Address and number formatting
|
|
- `validation.ts` - Input validation utilities
|
|
|
|
## Usage
|
|
|
|
Import shared code in your projects:
|
|
|
|
```typescript
|
|
// Token types and constants
|
|
import { TokenInfo, KNOWN_TOKENS } from '../../../shared/types/tokens';
|
|
import { KURDISTAN_COLORS, TOKEN_DISPLAY_SYMBOLS } from '../../../shared/constants';
|
|
|
|
// Blockchain utilities
|
|
import { DEFAULT_ENDPOINT, BLOCKCHAIN_ENDPOINTS } from '../../../shared/blockchain/polkadot';
|
|
|
|
// i18n
|
|
import { translations, LANGUAGES, isRTL } from '../../../shared/i18n';
|
|
|
|
// Formatting utilities
|
|
import { formatAddress, formatTokenAmount } from '../../../shared/utils/formatting';
|
|
```
|
|
|
|
## Guidelines
|
|
|
|
- Keep code framework-agnostic when possible
|
|
- Add comprehensive JSDoc comments
|
|
- Write unit tests for utilities
|
|
- Avoid platform-specific dependencies
|
|
- Use relative imports: `../../../shared/...` from web/mobile/SDK UI
|