Add core functionality for mobile post scheduling app
Adds necessary dependencies including axios and react-native-calendars to pnpm-lock.yaml. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7b0991ce-c7b8-4c82-9acc-fd3f9e762a01 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: dc1266fa-8375-43e1-aca0-9df31350f647 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/86064bd6-c937-4ca5-a5bf-bbef5749fb60/7b0991ce-c7b8-4c82-9acc-fd3f9e762a01/kWnlAIM Replit-Helium-Checkpoint-Created: true
This commit is contained in:
@@ -16,12 +16,49 @@ pnpm workspace monorepo using TypeScript. Each package manages its own dependenc
|
||||
- **API codegen**: Orval (from OpenAPI spec)
|
||||
- **Build**: esbuild (CJS bundle)
|
||||
|
||||
## Artifacts
|
||||
|
||||
### PostizMobile (`artifacts/postiz-mobile`)
|
||||
Expo (React Native) mobile client for a self-hosted Postiz instance.
|
||||
|
||||
- **Preview path**: `/`
|
||||
- **Theme**: Dark-only (`userInterfaceStyle: dark`)
|
||||
- **Auth**: API key stored in `expo-secure-store`, passed as `Authorization` header
|
||||
|
||||
#### Screens / Tabs
|
||||
1. **Calendar** (`app/(tabs)/index.tsx`) — Monthly calendar with post dots, tap day to see posts
|
||||
2. **Posts** (`app/(tabs)/posts.tsx`) — Filterable list of posts with status badges, swipe to delete
|
||||
3. **Compose** (`app/(tabs)/compose.tsx`) — Text editor, channel picker, date/time picker, image upload
|
||||
4. **Settings** (`app/(tabs)/settings.tsx`) — API key + base URL, validation, SecureStore persistence
|
||||
|
||||
#### Key Files
|
||||
- `context/PostizContext.tsx` — Axios client wired with API key/base URL; loaded from SecureStore on boot
|
||||
- `components/PostCard.tsx` — Swipeable post card with delete action
|
||||
- `components/StatusBadge.tsx` — QUEUE / PUBLISHED / ERROR / DRAFT badges
|
||||
- `components/ChannelChip.tsx` — Integration channel selector chip
|
||||
|
||||
#### External API
|
||||
- Base URL: `https://postiz.gyozamancave.fr/public/v1` (configurable)
|
||||
- `GET /integrations` — List channels
|
||||
- `GET /posts?startDate&endDate` — List posts
|
||||
- `POST /posts` — Create/schedule post
|
||||
- `DELETE /posts/:id` — Delete post
|
||||
- `POST /upload` — Upload media
|
||||
|
||||
#### Packages Added
|
||||
- `axios` — HTTP client
|
||||
- `expo-secure-store` — Secure API key storage
|
||||
- `react-native-calendars` — Calendar UI
|
||||
- `@react-native-community/datetimepicker` — Date/time picker for compose
|
||||
|
||||
### API Server (`artifacts/api-server`)
|
||||
Express 5 backend. Currently serves `/api/healthz`. Extend for server-side features.
|
||||
|
||||
## Key Commands
|
||||
|
||||
- `pnpm run typecheck` — full typecheck across all packages
|
||||
- `pnpm run build` — typecheck + build all packages
|
||||
- `pnpm --filter @workspace/api-spec run codegen` — regenerate API hooks and Zod schemas from OpenAPI spec
|
||||
- `pnpm --filter @workspace/db run push` — push DB schema changes (dev only)
|
||||
- `pnpm --filter @workspace/api-server run dev` — run API server locally
|
||||
|
||||
See the `pnpm-workspace` skill for workspace structure, TypeScript setup, and package details.
|
||||
|
||||
Reference in New Issue
Block a user