* init Signed-off-by: Innei <tukon479@gmail.com> * feat(ai-chat): enhance file handling with category-based icon retrieval - Introduced `getFileCategoryFromMimeType` function to categorize file types based on MIME type, improving the clarity of file handling in the AI chat interface. - Updated `FileAttachmentBlock` and `AIChatContextBar` components to utilize the new categorization function for determining file icons, streamlining the code and enhancing maintainability. - Removed redundant MIME type checks, simplifying the logic for icon assignment. These changes improve the user experience by ensuring accurate file representation and reduce code complexity. Signed-off-by: Innei <tukon479@gmail.com> * feat: preview image * Update avatar upload to use followApi and bump deps * feat: Refactor AI chat context blocks and file upload handling - Introduced new components for rendering AI chat context blocks, including AIDataBlockItem and AIDataBlockPart. - Enhanced file attachment handling by updating the structure of AIChatContextBlock to separate file attachments from other block types. - Implemented a new file upload hook (useFileUpload) to manage file uploads with progress tracking and toast notifications. - Added UploadProgress and CircularProgress components for visual feedback during file uploads. - Improved file processing logic to simulate realistic upload progress and handle errors more effectively. - Updated existing components to utilize the new block structure and file upload logic. - Created utility functions for managing block styles, icons, and labels for better code organization. Signed-off-by: Innei <tukon479@gmail.com> * feat: Enhance chat message rendering with Suspense and add ThinkingIndicator component Signed-off-by: Innei <tukon479@gmail.com> * fix: Remove error check for message metadata in AIChatMessage component Signed-off-by: Innei <tukon479@gmail.com> --------- Signed-off-by: Innei <tukon479@gmail.com> |
||
|---|---|---|
| .. | ||
| assets | ||
| build | ||
| changelog | ||
| code-signing | ||
| ios | ||
| native | ||
| plugins | ||
| scripts | ||
| src | ||
| web-app | ||
| .env.example | ||
| .gitignore | ||
| CLAUDE.md | ||
| README.md | ||
| app.config.ts | ||
| babel.config.js | ||
| bump.config.ts | ||
| eas.json | ||
| global.d.ts | ||
| metro.config.js | ||
| nativewind-env.d.ts | ||
| package.json | ||
| postcss.config.js | ||
| shim-env.d.ts | ||
| tailwind.config.ts | ||
| tailwind.dom.config.ts | ||
| tsconfig.json | ||
README.md
Folo Mobile App 📱
This is the mobile client for Folo, built with Expo. Folo organizes content into one timeline, keeping you updated on what matters, noise-free.
Features
- Customized information hub for content discovery
- AI-powered features like translation and summary
- Dynamic content support (articles, videos, images, audio)
- $POWER integration for creator economy
- Cross-platform support (iOS & Android [WIP])
- Modern UI design with native feel
Getting Started
-
Enable Corepack (if not already enabled)
corepack enable -
Install dependencies
pnpm install -
Start the development server
pnpm run dev
You can run the app on:
- iOS Simulator (
pnpm run ios) - iOS Device (
pnpm run ios:device) - Android Emulator (
pnpm run android) - Development build for full native feature testing
Project Structure
src/
├── modules/ # Feature-specific modules
│ ├── discover/ # Discovery feed features
│ └── ...
├── screens/ # App screens using file-based routing
└── ...
Development
- Built with Expo SDK [>=52]
- Uses Expo Router for navigation
- Styling with NativeWind
- State management with Jotai and Zustand
- API integration with Tanstack Query
- Full TypeScript support
Useful Resources
Need Help?
License
This project is licensed under the GNU General Public License version 3. See the main project repository for full license details.