mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-04-24 23:37:54 +00:00
Organize shared code across web, mobile, and SDK UI projects
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.
This commit is contained in:
+33
-8
@@ -1,25 +1,49 @@
|
||||
# Shared Code
|
||||
|
||||
This directory contains code shared between web and mobile applications.
|
||||
This directory contains code shared between web, mobile, and SDK UI applications.
|
||||
|
||||
## Structure
|
||||
|
||||
- **types/** - TypeScript type definitions and interfaces
|
||||
- **utils/** - Utility functions and helpers
|
||||
- **blockchain/** - Blockchain-related utilities (Polkadot API wrappers, transaction helpers)
|
||||
- `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
|
||||
// Web project
|
||||
import { SomeType } from '../shared/types';
|
||||
import { someUtil } from '../shared/utils';
|
||||
// Token types and constants
|
||||
import { TokenInfo, KNOWN_TOKENS } from '../../../shared/types/tokens';
|
||||
import { KURDISTAN_COLORS, TOKEN_DISPLAY_SYMBOLS } from '../../../shared/constants';
|
||||
|
||||
// Mobile project
|
||||
import { SomeType } from '../shared/types';
|
||||
// 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
|
||||
@@ -28,3 +52,4 @@ import { SomeType } from '../shared/types';
|
||||
- Add comprehensive JSDoc comments
|
||||
- Write unit tests for utilities
|
||||
- Avoid platform-specific dependencies
|
||||
- Use relative imports: `../../../shared/...` from web/mobile/SDK UI
|
||||
|
||||
Reference in New Issue
Block a user