Files
OpenFrontIO/resources/lang
Josh Harris ff5eb78689 Login with Google — client UI (#4028) (#4279)
Resolves #4028 (client half — backend is openfrontio/infra#368, which
must be deployed first).

## Description:

Adds "Login with Google" to the client, alongside the existing Discord
login. Companion to the backend PR (openfrontio/infra#368).

- `Auth.ts` — `googleLogin()` (full-page redirect to
`/auth/login/google?redirect_uri=…`, mirrors `discordLogin()`).
- `ApiSchemas.ts` — `GoogleUserSchema` + optional `user.google` on
`UserMeResponseSchema`.
- `AccountModal.ts` — a "Login with Google" button (Google brand
guidelines: white surface, dark text, the multicolor "G" mark) in the
login options, and the logged-in view now renders a Google-authenticated
user's email (also added `google` to `isLinkedAccount()`).
- `en.json` — `main.login_google`.
- `resources/images/GoogleLogo.svg` — the Google "G" mark.

> **Draft.** Depends on infra#368 being deployed (the button hits the
live `/auth/login/google`).

## Please complete the following:

- [x] I have added screenshots for all UI updates <!-- TODO: add
screenshot of the Google button -->
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory <!-- no client
tests exist for AccountModal/Auth; verified via tsc --noEmit + eslint.
Backend behaviour is covered in infra#368 -->

## Please put your Discord username so you can be contacted if a bug or
regression is found:

jish
2026-06-19 11:47:40 +01:00
..
2026-05-31 19:55:50 -07:00
2026-03-02 10:54:37 -08:00
2025-09-07 19:54:22 -07:00
2026-04-17 17:31:43 -07:00
2026-02-11 14:42:59 -08:00
2026-02-11 14:42:59 -08:00
2026-06-13 08:39:35 -07:00
2026-03-02 10:54:37 -08:00
2026-06-13 08:39:35 -07:00
2025-09-30 11:10:34 -07:00
2026-06-13 08:39:35 -07:00
2025-09-07 19:54:22 -07:00
2025-07-13 07:09:42 +00:00
2026-06-13 08:39:35 -07:00
2026-04-17 17:31:43 -07:00
2026-06-13 08:39:35 -07:00
2026-03-02 10:54:37 -08:00
2025-09-30 11:10:34 -07:00
2026-02-11 14:42:59 -08:00
2026-02-11 14:42:59 -08:00
2025-09-07 19:54:22 -07:00
2026-06-13 08:39:35 -07:00
2025-09-07 19:54:22 -07:00
2025-10-17 14:27:47 -07:00
2025-08-09 23:57:10 -04:00
2026-02-11 14:42:59 -08:00
2026-06-13 08:39:35 -07:00
2026-05-31 19:55:50 -07:00