Skip to content

Conversation

@JerryVincent
Copy link
Collaborator

@JerryVincent JerryVincent commented Nov 12, 2025

Type of Change

  • Dependency upgrade
  • Bug fix (non-breaking change)
  • Breaking change
    • e.g. a fixed bug or new feature that may break something else
  • New feature
  • Code quality improvements
    • e.g. refactoring, documentation, tests, tooling, ...

Implementation

The user can now change the map label language on the explore page. In the Index route, I have included the LanguageSelector component. I have also modified the react-map that is rendered in the app/components/map/map.tsx file, to include a custom language prop and also the function to update the language, so that the map component can be called with the language prop whenever there is a dynamic change in the map language. In the explore route, you can just pass the locale to the Map component.

Checklist

  • I gave this pull request a meaningful title
  • My pull request is targeting the dev branch
  • I have added documentation to my code
  • I have deleted code that I have commented out

Additional Information


const Map = forwardRef<MapRef, MapProps>(
interface CustomMapProps extends MapProps {
language?: string; // 'de', 'en', 'fr', etc.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We carry a list of supported languages in i18next-options.ts, which I think we should use here.
Thanks to the magic of typescript, we can actually use the languages as allowed types like this:

language?: typeof supportedLanguages[number]

This guarantees that at build time no unsupported values are passed, as currently only german and english will be allowed instead all strings :-)
Just a nice little addition here.

if (!style || !style.layers) return;

style.layers.forEach((layer: AnyLayer) => {
const layerAny = layer as any;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Casting to any should almost always be prevented or only used as a last resort.
In this case, you could easily refactor this:

if(!("layout" in layer)) return;

Then get rid of layerAny and just use layer as is.

Copy link
Collaborator

@scheidtdav scheidtdav left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need a follow up for refactoring our language process entirely, but this is fine for now.

@scheidtdav scheidtdav merged commit 6153b69 into dev Nov 26, 2025
5 of 6 checks passed
@scheidtdav scheidtdav deleted the languageFix branch November 26, 2025 11:24
scheidtdav added a commit that referenced this pull request Dec 8, 2025
* Feat/user registration api (#557)

* feat: add draft for port of user registration to resource route

* feat: partly implement refresh token

* docs: simplify contributing and add info about api routes and shared logic

* feat(api): finalize user registration endpoint

* fix(tests): get the tests to run be reconfiguring build steps

* docs(db): readd db setup and seed scripts with README info for it

* fix: wrong import of utils

* refactor: remove leftover custom server stuff

* fix(tests): add missing refresh token table

* fix(tests): reenable remaining tests for registration

* fix(ci): remove playwright and use correct node version

* fix(ci): run the tests with a postgres container

* feat(tests): add coverage report

* fix(build): reorganize server modules to correctly split client/ server

* fix(build): miss an import

* fix(build): remove leftovers from custom server implementation

* chore(deps): bump react-router dependencies

* chore(deps): update react-router

* feat/user me api (#559)

* feat(api): add api routes for /users/me

* fix(tests): api me PUT

* feat(api): add delete me endpoint

* feat(api): add root route (#560)

* start

* new commit

* tested docs

* added a route

* Added API Docs

* modified

* removed unsupported packages

* updated

* Modified

* script generation without using ts-node.

* modified

* fix: update package-lock.json

* Updated (#575)

* Updated README

* Updated README

* Removed duplicate Documentation section (#576)

* Updated README

* Updated README

* Removed duplicate section.

* Update README.md

* Feat/api email and password (#561)

* feat(api): add email-confirmation endpoint

* feat(api): add request password reset

* feat(api): add password reset

* feat(api): implement resend email confirmation (without sending yet)

* feat/api auth (#562)

* feat(api): add email-confirmation endpoint

* feat(api): add request password reset

* feat(api): add password reset

* feat(api): implement resend email confirmation (without sending yet)

* feat(api): add sign-in, sign-out and refresh-routes to api

* feat(api): implement refresh endpoint

---------

Co-authored-by: jona159 <[email protected]>

* feat(api): boxes for user endpoints (#573)

* feat/api misc (#571)

* feat(api): boxes for user endpoints

* feat(api): add tags and stats route scaffold

* feat(api): implement tags route

* refactor: remove unnecessary imports

* feat(api): implement statistics route

---------

Co-authored-by: jona159 <[email protected]>

* tests: disable integration related test

---------

Co-authored-by: JerryVincent <[email protected]>
Co-authored-by: Jerry Vincent <[email protected]>
Co-authored-by: jona159 <[email protected]>

* Added annotations for sign-in (#578)

* Fix/docs autogen in debug (#579)

* Added annotations for sign-in

* fix(tools): auto generate docs in debug mode when page refreshes

---------

Co-authored-by: JerryVincent <[email protected]>

* bump nodejs version (#584)

* build(deps): bump node dependency

* build(deps): update package.json to require at least node 22

* build(deps): set node to 24

* build(deps): install

* build: run browserlist (#586)

* build(deps-dev): bump eslint-plugin-unicorn from 56.0.1 to 60.0.0 (#587)

Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 56.0.1 to 60.0.0.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
- [Commits](sindresorhus/eslint-plugin-unicorn@v56.0.1...v60.0.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-unicorn
  dependency-version: 60.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump actions/checkout from 4 to 5 (#590)

Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added clustering of mobile devices. (#588)

* Added clustering of mobile devices.

* feat: adjust cluster params according to discussion

---------

Co-authored-by: David Scheidt <[email protected]>

* build(deps): bump actions/setup-node from 4 to 5 (#594)

Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: bump patch versions and remix-run/dev to fix security issue (#615)

* Feat/api boxes sensors (#580)

* feat: add draft for port of user registration to resource route

* feat: partly implement refresh token

* docs: simplify contributing and add info about api routes and shared logic

* feat(api): finalize user registration endpoint

* fix(tests): get the tests to run be reconfiguring build steps

* docs(db): readd db setup and seed scripts with README info for it

* fix: wrong import of utils

* refactor: remove leftover custom server stuff

* fix(tests): add missing refresh token table

* fix(tests): reenable remaining tests for registration

* fix(ci): remove playwright and use correct node version

* fix(ci): run the tests with a postgres container

* feat(tests): add coverage report

* fix(build): reorganize server modules to correctly split client/ server

* fix(build): miss an import

* fix(build): remove leftovers from custom server implementation

* chore(deps): bump react-router dependencies

* chore(deps): update react-router

* feat/user me api (#559)

* feat(api): add api routes for /users/me

* fix(tests): api me PUT

* feat(api): add delete me endpoint

* feat(api): add root route (#560)

* start

* new commit

* tested docs

* added a route

* Added API Docs

* modified

* removed unsupported packages

* updated

* Modified

* script generation without using ts-node.

* modified

* fix: update package-lock.json

* Updated (#575)

* Updated README

* Updated README

* Removed duplicate Documentation section (#576)

* Updated README

* Updated README

* Removed duplicate section.

* Update README.md

* Feat/api email and password (#561)

* feat(api): add email-confirmation endpoint

* feat(api): add request password reset

* feat(api): add password reset

* feat(api): implement resend email confirmation (without sending yet)

* feat/api auth (#562)

* feat(api): add email-confirmation endpoint

* feat(api): add request password reset

* feat(api): add password reset

* feat(api): implement resend email confirmation (without sending yet)

* feat(api): add sign-in, sign-out and refresh-routes to api

* feat(api): implement refresh endpoint

---------

Co-authored-by: jona159 <[email protected]>

* feat(api): boxes for user endpoints (#573)

* feat/api misc (#571)

* feat(api): boxes for user endpoints

* feat(api): add tags and stats route scaffold

* feat(api): implement tags route

* refactor: remove unnecessary imports

* feat(api): implement statistics route

---------

Co-authored-by: jona159 <[email protected]>

* feat(api): add route and test files

* feat: add test code

* feat: add dummy sensors to devices and implement getting them back

* feat: prefer dev server in no production envs and hide dev in prod

* feat(docs): start adding docs to route

* feat: finish up to the point where we need measurements

* fix: api routes without need for measurements

* fix: stats call

* fix: remaining tests

* fix: frontend issue from changing the service implementation

* Feat/api boxes (#582)

* feat: add command for drizzle studio

* feat: devices loader

* feat: load single device

* feat: uncomment get boxes, delete box path

* feat(wip): add boxes test suite

* feat: add devices service

* fix: some types, formatting

* feat: wip devices api

* fix: tests

* refactor: use modern syntax for assertion

* feat: adjust for zod schema

* feat: add drizzle check

* feat: add phenomenon and dates to where clause

* fix: tests and validation schema

* fix: cast types as any temporarily

---------

Co-authored-by: jona159 <[email protected]>

---------

Co-authored-by: JerryVincent <[email protected]>
Co-authored-by: Jerry Vincent <[email protected]>
Co-authored-by: jona159 <[email protected]>
Co-authored-by: jona159 <[email protected]>

* Feat: update endpoint paths and expected data format for backward compatibility (#613)

* feat: add helper file to parse both multipart/form-data and application/json request content

* feat: move /sign-in endpoint to /users/sign-in route

* fix: handle user case when no name is provided during registration gracefully

* feat: move endpoint /register to /users/register

* feat: move /refresh-auth to /users/refresh-auth and allow json format

* fix: linter warnings

* refactor: rename helpers.ts => request-parsing.ts

* refactor: remove unused api.users.ts

* fix: remove test for deleted endpoint

* fix: more helpers not realated to parsing back to helpers.ts

* fix: remove general helpers from request-parsing.ts

* refactor: rename helpers.spec.ts to request-parsing.spec.ts

---------

Co-authored-by: David Scheidt <[email protected]>

* corrected type error for the devices variable (#621)

* Feat: post api boxes (#616)

* feat: add draft for port of user registration to resource route

* feat: partly implement refresh token

* docs: simplify contributing and add info about api routes and shared logic

* feat(api): finalize user registration endpoint

* fix(tests): get the tests to run be reconfiguring build steps

* docs(db): readd db setup and seed scripts with README info for it

* fix: wrong import of utils

* refactor: remove leftover custom server stuff

* fix(tests): add missing refresh token table

* fix(tests): reenable remaining tests for registration

* fix(ci): remove playwright and use correct node version

* fix(ci): run the tests with a postgres container

* feat(tests): add coverage report

* fix(build): reorganize server modules to correctly split client/ server

* fix(build): miss an import

* fix(build): remove leftovers from custom server implementation

* chore(deps): bump react-router dependencies

* chore(deps): update react-router

* feat/user me api (#559)

* feat(api): add api routes for /users/me

* fix(tests): api me PUT

* feat(api): add delete me endpoint

* feat(api): add root route (#560)

* start

* new commit

* tested docs

* added a route

* Added API Docs

* modified

* removed unsupported packages

* updated

* Modified

* script generation without using ts-node.

* modified

* fix: update package-lock.json

* Updated (#575)

* Updated README

* Updated README

* feat: add command for drizzle studio

* feat: devices loader

* feat: load single device

* feat: uncomment get boxes, delete box path

* feat(wip): add boxes test suite

* feat: add devices service

* fix: some types, formatting

* Removed duplicate Documentation section (#576)

* Updated README

* Updated README

* Removed duplicate section.

* Update README.md

* Feat/api email and password (#561)

* feat(api): add email-confirmation endpoint

* feat(api): add request password reset

* feat(api): add password reset

* feat(api): implement resend email confirmation (without sending yet)

* feat/api auth (#562)

* feat(api): add email-confirmation endpoint

* feat(api): add request password reset

* feat(api): add password reset

* feat(api): implement resend email confirmation (without sending yet)

* feat(api): add sign-in, sign-out and refresh-routes to api

* feat(api): implement refresh endpoint

---------

Co-authored-by: jona159 <[email protected]>

* feat(api): boxes for user endpoints (#573)

* feat/api misc (#571)

* feat(api): boxes for user endpoints

* feat(api): add tags and stats route scaffold

* feat(api): implement tags route

* refactor: remove unnecessary imports

* feat(api): implement statistics route

---------

Co-authored-by: jona159 <[email protected]>

* feat(api): add route and test files

* feat: add test code

* feat: add dummy sensors to devices and implement getting them back

* feat: prefer dev server in no production envs and hide dev in prod

* feat(docs): start adding docs to route

* feat: wip devices api

* feat: finish up to the point where we need measurements

* fix: api routes without need for measurements

* fix: stats call

* fix: remaining tests

* fix: frontend issue from changing the service implementation

* fix: tests

* refactor: use modern syntax for assertion

* feat: adjust for zod schema

* feat: add drizzle check

* feat: add phenomenon and dates to where clause

* feat: update returned data format of users/me/boxes endpoint to match old data format

* feat: expose additional device attributes

* fix: return jwt token as access_token

* feat: add post and get /boxes

* refactor: move CreateBoxSchema to devices-service.server.ts

* fix: comment get /boxes route since this functionality is not implemented

* fix: linting errors

* fix: failing tests

* feat: add type check

* feat: add check for authHeader for GET /users/me/boxes

* refactor: return box with sensor data from createDevice

* test: createDevice

* test: post /boxes

* fix: return last measurements as string

* fix: lastMeasurements types

* fix: linter warnings

* refactor: device.server.ts

* fix: linter warnings

* doc: udpate post api documentation

* fix: after merging dev into current branch.

* refactor: remove access_token mentions from api responses

* refactor: add check for request type for api/boxes endpoint

* doc: update api/boxes documentation after allowing different request types

* refactor: remove unused code and fix linter errors

* fix: linting issues

---------

Co-authored-by: David Scheidt <[email protected]>
Co-authored-by: David Scheidt <[email protected]>
Co-authored-by: JerryVincent <[email protected]>
Co-authored-by: Jerry Vincent <[email protected]>
Co-authored-by: jona159 <[email protected]>
Co-authored-by: jona159 <[email protected]>

* build(deps): bump axios and @directus/sdk (#521)

* build(deps): bump axios and @directus/sdk

Bumps [axios](https://github.com/axios/axios) to 1.8.3 and updates ancestor dependency [@directus/sdk](https://github.com/directus/directus/tree/HEAD/sdk). These dependencies need to be updated together.


Updates `axios` from 1.7.9 to 1.8.3
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.7.9...v1.8.3)

Updates `@directus/sdk` from 10.3.5 to 18.0.3
- [Release notes](https://github.com/directus/directus/releases)
- [Commits](https://github.com/directus/directus/commits/HEAD/sdk)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: indirect
- dependency-name: "@directus/sdk"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* feat: migrate to latest directus sdk

* fix: typescript issue with readonly string[] of languages

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Scheidt <[email protected]>

* Fix/username taken (#543)

* fix: handle existing usernames properly

* feat: add translations to sign up page

* feat: migrate join to new translations

* Chore/update dependencies (#577)

* chore(deps): bump dependencies

* chore(deps): run npm audit

* chore(deps): update directus

* fix(deps): typecheck issues

* build: update package-lock

* fix: rewrite package-lock

* fix: issue from merge resolution

* fix: lint

* fix(styles): apply previous overflow fix only for explore page so rest stays untouched (#581)

* fix: update and remove a bunch of security vulnerable deps (#623)

* fix: update and remove a bunch of security vulnerable deps

* fix: rewrite package-lock.json

* fixed loading error of profile/username route (#624)

* fixed loading error of profile/username route

* fix: manage imports

---------

Co-authored-by: David Scheidt <[email protected]>

* build(deps): bump actions/setup-node from 5 to 6 (#626)

Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump prettier from 3.6.1 to 3.6.2 (#629)

* Feat/post new measurements (#614)

* feat: wip post new measurements

* feat: measurement service wip

* fix: some tests

* fix: migrations

* fix: tests for json data

* fix: cleanup

* feat: add tests and routes to post a measurement to a sensor

* feat: adjust post single measurement for location data

* feat: measurement location tests first draft

* feat: add more location tests

* feat: parse locations in decoder

* feat: do nothing on conflict, dont throw

* fix: access token migrations

* fix: byte protocol tests

* fix: typecheck

* fix: typo

* fix: check authorization token if box has auth enabled

* fix: add use auth to default columns

* fix: linting issue

---------

Co-authored-by: David Scheidt <[email protected]>
Co-authored-by: David Scheidt <[email protected]>

* Add custom sponsorship URL to FUNDING.yml

* build(deps): bump react-dom and @types/react-dom (#628)

* build(deps): bump react-dom and @types/react-dom

Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom). These dependencies needed to be updated together.

Updates `react-dom` from 19.1.0 to 19.2.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.0/packages/react-dom)

Updates `@types/react-dom` from 19.1.6 to 19.2.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: react-dom
  dependency-version: 19.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: "@types/react-dom"
  dependency-version: 19.2.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* fix: update react as well

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Scheidt <[email protected]>

* Devicedetail fix (#631)

* fixed loading error of profile/username route

* fix: show on map feature

* fix: add missing suffix

---------

Co-authored-by: David Scheidt <[email protected]>

* Add templates for pull requests, feature requests and bug reports (#632)

* feat: add issue templates

* feat: add pull request template

* feat: make it more clear how to check a box

* fix: problem with existing issue form (#636)

* Feat/transfer routes (#595)

* feat: add draft for port of user registration to resource route

* feat: partly implement refresh token

* docs: simplify contributing and add info about api routes and shared logic

* feat(api): finalize user registration endpoint

* fix(tests): get the tests to run be reconfiguring build steps

* docs(db): readd db setup and seed scripts with README info for it

* fix: wrong import of utils

* refactor: remove leftover custom server stuff

* fix(tests): add missing refresh token table

* fix(tests): reenable remaining tests for registration

* fix(ci): remove playwright and use correct node version

* fix(ci): run the tests with a postgres container

* feat(tests): add coverage report

* fix(build): reorganize server modules to correctly split client/ server

* fix(build): miss an import

* fix(build): remove leftovers from custom server implementation

* chore(deps): bump react-router dependencies

* chore(deps): update react-router

* feat/user me api (#559)

* feat(api): add api routes for /users/me

* fix(tests): api me PUT

* feat(api): add delete me endpoint

* feat(api): add root route (#560)

* start

* new commit

* tested docs

* added a route

* Added API Docs

* modified

* removed unsupported packages

* updated

* Modified

* script generation without using ts-node.

* modified

* fix: update package-lock.json

* Updated (#575)

* Updated README

* Updated README

* feat: add command for drizzle studio

* feat: devices loader

* feat: load single device

* feat: uncomment get boxes, delete box path

* feat(wip): add boxes test suite

* feat: add devices service

* fix: some types, formatting

* Removed duplicate Documentation section (#576)

* Updated README

* Updated README

* Removed duplicate section.

* Update README.md

* Feat/api email and password (#561)

* feat(api): add email-confirmation endpoint

* feat(api): add request password reset

* feat(api): add password reset

* feat(api): implement resend email confirmation (without sending yet)

* feat/api auth (#562)

* feat(api): add email-confirmation endpoint

* feat(api): add request password reset

* feat(api): add password reset

* feat(api): implement resend email confirmation (without sending yet)

* feat(api): add sign-in, sign-out and refresh-routes to api

* feat(api): implement refresh endpoint

---------

Co-authored-by: jona159 <[email protected]>

* feat(api): boxes for user endpoints (#573)

* feat/api misc (#571)

* feat(api): boxes for user endpoints

* feat(api): add tags and stats route scaffold

* feat(api): implement tags route

* refactor: remove unnecessary imports

* feat(api): implement statistics route

---------

Co-authored-by: jona159 <[email protected]>

* feat(api): add route and test files

* feat: add test code

* feat: add dummy sensors to devices and implement getting them back

* feat: prefer dev server in no production envs and hide dev in prod

* feat(docs): start adding docs to route

* feat: wip devices api

* feat: finish up to the point where we need measurements

* fix: api routes without need for measurements

* fix: stats call

* fix: remaining tests

* fix: frontend issue from changing the service implementation

* fix: tests

* refactor: use modern syntax for assertion

* feat: adjust for zod schema

* feat: add drizzle check

* feat: transfer routes

* feat(wip): transfer boxes

* fix: deprecated json function

* fix: imports

* fix: imports, json

* fix: imports, json

* fix: import

* fix: import order

* fix: import order

* fix: migrations

* feat: wrap device and claim update in transaction

* fix: rm duplicate functions, tests

* fix: error code

---------

Co-authored-by: David Scheidt <[email protected]>
Co-authored-by: David Scheidt <[email protected]>
Co-authored-by: JerryVincent <[email protected]>
Co-authored-by: Jerry Vincent <[email protected]>

* Feat/migrate boxes box id data sensor (#648)

* fix: API path for /api/boxes/{deviceId}/sensors

* feat: get measurements for specific box

All the parameters are parsed but currently only the device and sensor ID are being used

* fix: don't explicitly state platform in docker-compose

* feat: cleanup types

* fix: function call and cleanup imports

* feat: get data properly

* feat: mark outliers

* feat: implement csv format

* feat: cleanup

* feat: add unit tests

* fix: remove todo

* fix: lint

* fix: timezones

* fix: lint and requested changes

* fix: delete unused function

---------

Co-authored-by: Timber <[email protected]>
Co-authored-by: jona159 <[email protected]>

* Fixed the image upload problem and moved the resource routes from the resources+ folder as the react router doesn't support this. (#647)

* Fixed the image upload problem and moved the resource routes from the resources+ folder as the react router doesn't support this.

* Clsoe enabled on the Dialog

* Feat/migrate boxes sense box id locations (#650)

* feat: create response utils

* feat: add response types to api.boxes.deviceId.data.sensorId

* fix: replace tab with space

* feat: implement location endpoint

* feat: only get required locations from database

* feat: unit tests

* fix: lint

* feat: delete unused method

* feat: delete outdated comment

* fix: remove duplicated whitespace

* fix: delete measurements for all test times

* fix: remove eslint ignore comment

* fix: lint

* feat: remove TODO

---------

Co-authored-by: Timber <[email protected]>

* fix: remove npm as direct dependency (#656)

* Feat/utilize response utils (#657)

* feat: use StandardResponse for API requests

* fix: change return code back to forbidden

* fix: tests

* fix: proper import in param-utils

* fix: don't stringify and don't return anything for no content

* fix: dont allow creating response body in no content util

---------

Co-authored-by: Timber <[email protected]>
Co-authored-by: jona159 <[email protected]>

* Feat/mailer (#612)

* feat: add draft for port of user registration to resource route

* feat: partly implement refresh token

* docs: simplify contributing and add info about api routes and shared logic

* feat(api): finalize user registration endpoint

* fix(tests): get the tests to run be reconfiguring build steps

* docs(db): readd db setup and seed scripts with README info for it

* fix: wrong import of utils

* refactor: remove leftover custom server stuff

* fix(tests): add missing refresh token table

* fix(tests): reenable remaining tests for registration

* fix(ci): remove playwright and use correct node version

* fix(ci): run the tests with a postgres container

* feat(tests): add coverage report

* fix(build): reorganize server modules to correctly split client/ server

* fix(build): miss an import

* fix(build): remove leftovers from custom server implementation

* chore(deps): bump react-router dependencies

* chore(deps): update react-router

* feat/user me api (#559)

* feat(api): add api routes for /users/me

* fix(tests): api me PUT

* feat(api): add delete me endpoint

* feat(api): add root route (#560)

* start

* new commit

* tested docs

* added a route

* Added API Docs

* modified

* removed unsupported packages

* updated

* Modified

* script generation without using ts-node.

* modified

* fix: update package-lock.json

* Updated (#575)

* Updated README

* Updated README

* Removed duplicate Documentation section (#576)

* Updated README

* Updated README

* Removed duplicate section.

* Update README.md

* Feat/api email and password (#561)

* feat(api): add email-confirmation endpoint

* feat(api): add request password reset

* feat(api): add password reset

* feat(api): implement resend email confirmation (without sending yet)

* feat/api auth (#562)

* feat(api): add email-confirmation endpoint

* feat(api): add request password reset

* feat(api): add password reset

* feat(api): implement resend email confirmation (without sending yet)

* feat(api): add sign-in, sign-out and refresh-routes to api

* feat(api): implement refresh endpoint

---------

Co-authored-by: jona159 <[email protected]>

* feat(api): boxes for user endpoints (#573)

* feat/api misc (#571)

* feat(api): boxes for user endpoints

* feat(api): add tags and stats route scaffold

* feat(api): implement tags route

* refactor: remove unnecessary imports

* feat(api): implement statistics route

---------

Co-authored-by: jona159 <[email protected]>

* feat(api): add route and test files

* feat: add test code

* feat: add dummy sensors to devices and implement getting them back

* feat: prefer dev server in no production envs and hide dev in prod

* feat(docs): start adding docs to route

* feat: finish up to the point where we need measurements

* fix: api routes without need for measurements

* fix: stats call

* fix: remaining tests

* fix: frontend issue from changing the service implementation

* feat: add react mail

* feat: add nodemailer and setup for sending mails

* feat: send password reset mails

* refactor: fix lint issues with mails

* feat: implement email confirmation mail

* feat: add mail for new users

* fix: rewrite package lock

* fix: rewrite package lock

* fix: packages

* feat: add email to new devices being created

* feat: send mail when email requested to change

* feat: set email language properly

* feat: implement base mail for all devices and migrate device specifics

* fix: move ts-ignore

* fix: use example vars for test

* feat: use ethereal.email for testing

* fix: remove conflicting test

* fix: rewrite package-lock.json

* refactor: remove unused comment

* refactor: remove mailhog platform

* feat: remove [email protected] and matthias mail address

---------

Co-authored-by: JerryVincent <[email protected]>
Co-authored-by: Jerry Vincent <[email protected]>
Co-authored-by: jona159 <[email protected]>

* build(deps): bump actions/checkout from 5 to 6 (#659)

Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Changing label language of the map and the app language from explore page (#653)

* added language selection in the explore route

* User can now change the language of the map labels from the explore route.

* This commit fixes the language switching problem and avoids passing custom props.

* This commit uses type guardind for the layer instead of casting to any.

* Fix the bug that the app is not reflecting the default user language setting.

* This commit will fix the issues related to switching the language with the user-preferred language and falls back to the default language when a user is logged out.

* This commit will removes the eslint warnings and a test error which was happening in one of the test routes.

* refactor: remove unused state from selector

---------

Co-authored-by: David Scheidt <[email protected]>
Co-authored-by: David Scheidt <[email protected]>

* Language fix (#662)

* added language selection in the explore route

* User can now change the language of the map labels from the explore route.

* This commit fixes the language switching problem and avoids passing custom props.

* This commit uses type guardind for the layer instead of casting to any.

* Fix the bug that the app is not reflecting the default user language setting.

* This commit will fix the issues related to switching the language with the user-preferred language and falls back to the default language when a user is logged out.

* This commit will removes the eslint warnings and a test error which was happening in one of the test routes.

* This commit will fix the issue with the labels that are currently empty for the road markers.

* this commit will fix the formatting issues and removed the text-field names that might change in the future mapbox update..

* fix: resolve eslint warning

* refactor: reformat language selector

* refactor: use type for loader data

---------

Co-authored-by: David Scheidt <[email protected]>

* Language fix (#664)

* added language selection in the explore route

* User can now change the language of the map labels from the explore route.

* This commit fixes the language switching problem and avoids passing custom props.

* This commit uses type guardind for the layer instead of casting to any.

* Fix the bug that the app is not reflecting the default user language setting.

* This commit will fix the issues related to switching the language with the user-preferred language and falls back to the default language when a user is logged out.

* This commit will removes the eslint warnings and a test error which was happening in one of the test routes.

* This commit will fix the issue with the labels that are currently empty for the road markers.

* this commit will fix the formatting issues and removed the text-field names that might change in the future mapbox update..

* This commit fill fix the eslint warning that complains about calling the i18next.changeLanguage().

* fixed formatting

* fix: bump react-email to get rid of CVE affected next-js version (#669)

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: JerryVincent <[email protected]>
Co-authored-by: Jerry Vincent <[email protected]>
Co-authored-by: jona159 <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: jona159 <[email protected]>
Co-authored-by: Maria Zadnepryanets <[email protected]>
Co-authored-by: Timber <[email protected]>
Co-authored-by: Timber <[email protected]>
Co-authored-by: Timber <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow to Change Language from Explore Page

3 participants