wrongmove/crawler/frontend
Viktor Barzin 42d34fd21a
Fix map UX: instant load, stable hex grid, and clickable hexagons
- Skip fly-to animation on initial data load (fitBounds duration: 0)
- Replace turf.hexGrid with origin-anchored manual hex generation so
  hexagons stay stable across pan/zoom instead of flickering
- Quantize zoom to integers so hex pattern only changes at discrete levels
- Scale search radius with cell size so low-zoom hexagons find their data
- Make hexagons clickable with pointer cursor; each hex shows the exact
  listings it aggregated via stored search bounds
- Remove unused SEARCH_BUFFER constant
2026-02-07 21:59:02 +00:00
..
public Fix map UX: instant load, stable hex grid, and clickable hexagons 2026-02-07 21:59:02 +00:00
src Fix map UX: instant load, stable hex grid, and clickable hexagons 2026-02-07 21:59:02 +00:00
.dockerignore make the app buildable for prod 2025-06-16 22:43:46 +00:00
.env.sample rename frontend directory to frontend 2025-06-14 15:43:14 +00:00
.gitignore rename frontend directory to frontend 2025-06-14 15:43:14 +00:00
Caddyfile.dev Add frontend and Caddy to Docker Compose dev environment 2026-02-06 23:45:29 +00:00
components.json install shadcdn and move login dialog to a separate component 2025-06-15 13:49:34 +00:00
Dockerfile disable login button whilst logging in 2025-06-17 19:15:18 +00:00
eslint.config.js rename frontend directory to frontend 2025-06-14 15:43:14 +00:00
index.html setup map component to render correctly and visualize all listings in scrollable components 2025-06-15 21:06:10 +00:00
nginx.conf make the app buildable for prod 2025-06-16 22:43:46 +00:00
package-lock.json Add passkey (WebAuthn) authentication with self-registration 2026-02-07 00:34:47 +00:00
package.json Add passkey (WebAuthn) authentication with self-registration 2026-02-07 00:34:47 +00:00
README.md rename frontend directory to frontend 2025-06-14 15:43:14 +00:00
start.sh fail start script if caddy is not installed 2025-06-14 15:52:27 +00:00
tsconfig.app.json make the app buildable for prod 2025-06-16 22:43:46 +00:00
tsconfig.app.tsbuildinfo Refactor codebase following Clean Code principles and add 229 tests 2026-02-07 20:19:57 +00:00
tsconfig.json rename frontend directory to frontend 2025-06-14 15:43:14 +00:00
tsconfig.node.json make the app buildable for prod 2025-06-16 22:43:46 +00:00
tsconfig.node.tsbuildinfo show spinner while running backgroun task 2025-06-23 19:45:53 +00:00
vite.config.ts Use localhost as dev origin instead of devvm.viktorbarzin.lan 2026-02-06 23:44:50 +00:00

React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

export default tseslint.config({
  extends: [
    // Remove ...tseslint.configs.recommended and replace with this
    ...tseslint.configs.recommendedTypeChecked,
    // Alternatively, use this for stricter rules
    ...tseslint.configs.strictTypeChecked,
    // Optionally, add this for stylistic rules
    ...tseslint.configs.stylisticTypeChecked,
  ],
  languageOptions: {
    // other options...
    parserOptions: {
      project: ['./tsconfig.node.json', './tsconfig.app.json'],
      tsconfigRootDir: import.meta.dirname,
    },
  },
})

You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:

// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'

export default tseslint.config({
  plugins: {
    // Add the react-x and react-dom plugins
    'react-x': reactX,
    'react-dom': reactDom,
  },
  rules: {
    // other rules...
    // Enable its recommended typescript rules
    ...reactX.configs['recommended-typescript'].rules,
    ...reactDom.configs.recommended.rules,
  },
})