# ⚛️ MapleFile Frontend (React + Vite)

End-to-end encrypted file storage frontend built with React 19 and Vite.

## 🚀 Quick Start

### Development Setup

```bash
# Install dependencies
npm install

# Copy environment template
cp .env.development.sample .env.development

# Start dev server
npm run dev
```

The frontend runs at **http://localhost:5173**

### Production Setup

```bash
# Copy environment template
cp .env.production.sample .env.production

# Edit .env.production with your production settings
# At minimum, set: VITE_API_BASE_URL

# Build for production
npm run build

# Preview production build locally
npm run preview
```

## ⚙️ Environment Configuration

Environment files are **not tracked in git**. Use the `.sample` files as templates:

- **`.env.development.sample`** → Copy to `.env.development` (local dev)
- **`.env.production.sample`** → Copy to `.env.production` (production build)

**Key variables:**

| Variable | Description | Default |
|----------|-------------|---------|
| `VITE_API_BASE_URL` | Backend API endpoint | `http://localhost:8000` (dev) |
| `VITE_DEV_MODE` | Development mode flag | `true` (dev) |

### Session Persistence

Users can choose their session persistence preference via the "Keep me logged in" checkbox on the login page:

- **Checked** - Uses `localStorage` to stay logged in after closing browser
- **Unchecked** - Uses `sessionStorage` for session-only persistence (logged out on browser close)

The preference is stored and remembered for future logins.

## 🤝 Contributing

Found a bug? Want a feature to improve MapleFile Frontend? Please create an [issue](https://codeberg.org/mapleopentech/monorepo/issues/new).

## 📝 License

This application is licensed under the [**GNU Affero General Public License v3.0**](https://opensource.org/license/agpl-v3). See [LICENSE](../../LICENSE) for more information.
