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:
antoinepiron
2026-05-03 11:41:45 +00:00
parent 5b0eedb94b
commit bbbcf9f586
31 changed files with 10631 additions and 9 deletions
+38 -1
View File
@@ -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.