mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-04-22 04:27:56 +00:00
7b95b8a409
This commit reorganizes the codebase to eliminate duplication between web and mobile frontends by moving all commonly used files to the shared folder. Changes: - Moved lib files to shared/lib/: * wallet.ts, staking.ts, tiki.ts, identity.ts * multisig.ts, usdt.ts, scores.ts, citizenship-workflow.ts - Moved utils to shared/utils/: * auth.ts, dex.ts * Created format.ts (extracted formatNumber from web utils) - Created shared/theme/: * colors.ts (Kurdistan and App color definitions) - Updated web configuration: * Added @pezkuwi/* path aliases in tsconfig.json and vite.config.ts * Updated all imports to use @pezkuwi/lib/*, @pezkuwi/utils/*, @pezkuwi/theme/* * Removed duplicate files from web/src/lib and web/src/utils - Updated mobile configuration: * Added @pezkuwi/* path aliases in tsconfig.json * Updated theme/colors.ts to re-export from shared * Mobile already uses relative imports to shared (no changes needed) Architecture Benefits: - Single source of truth for common code - No duplication between frontends - Easier maintenance and consistency - Clear separation of shared vs platform-specific code Web-specific files kept: - web/src/lib/supabase.ts - web/src/lib/utils.ts (cn function for Tailwind, re-exports formatNumber from shared) All imports updated and tested. Both web and mobile now use the centralized shared folder.
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 endpointsDEFAULT_ENDPOINT- Current blockchain endpoint (beta testnet)
-
i18n/ - Internationalization
locales/- Translation files for 6 languagesLANGUAGES- Language configurations with RTL supporttranslations- All locale data
-
utils/ - Utility functions and helpers
formatting.ts- Address and number formattingvalidation.ts- Input validation utilities
Usage
Import shared code in your projects:
// 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