From 65bd4561e3fb7aa491cdb2a3ab062aa4c793d6a3 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Wed, 11 Jan 2023 09:59:23 +0200 Subject: [PATCH] Teams: Add to nav --- app/components/layout/nav-items.json | 8 +++ app/features/img-upload/s3.server.ts | 54 ++++++++++++------ .../team/routes/t.$customUrl.edit.tsx | 40 +++++++++++-- .../team/routes/t.$customUrl.join.tsx | 7 +-- .../team/routes/t.$customUrl.roster.tsx | 47 ++++++++++++--- app/features/team/routes/t.$customUrl.tsx | 23 ++++++-- app/features/team/routes/t.tsx | 29 ++++++++-- public/locales/en/common.json | 1 + public/static-assets/img/layout/t.avif | Bin 0 -> 7705 bytes public/static-assets/img/layout/t.png | Bin 0 -> 32891 bytes 10 files changed, 161 insertions(+), 48 deletions(-) create mode 100644 public/static-assets/img/layout/t.avif create mode 100644 public/static-assets/img/layout/t.png diff --git a/app/components/layout/nav-items.json b/app/components/layout/nav-items.json index 579fb6f9f..644cf0082 100644 --- a/app/components/layout/nav-items.json +++ b/app/components/layout/nav-items.json @@ -88,5 +88,13 @@ "invert(30%) sepia(73%) saturate(4089%) hue-rotate(326deg) brightness(96%) contrast(104%)", "invert(55%) sepia(20%) saturate(738%) hue-rotate(224deg) brightness(86%) contrast(88%)" ] + }, + { + "name": "t", + "url": "t", + "filters": [ + "invert(99%) sepia(3%) saturate(615%) hue-rotate(199deg) brightness(115%) contrast(88%)", + "invert(23%) sepia(90%) saturate(2049%) hue-rotate(329deg) brightness(95%) contrast(107%)" + ] } ] diff --git a/app/features/img-upload/s3.server.ts b/app/features/img-upload/s3.server.ts index 3578ae055..d5175db30 100644 --- a/app/features/img-upload/s3.server.ts +++ b/app/features/img-upload/s3.server.ts @@ -8,27 +8,45 @@ import { writeAsyncIterableToWritable } from "@remix-run/node"; import { nanoid } from "nanoid"; import invariant from "tiny-invariant"; -const { - STORAGE_END_POINT, - STORAGE_ACCESS_KEY, - STORAGE_SECRET, - STORAGE_REGION, - STORAGE_BUCKET, -} = process.env; +const envVars = () => { + const { + STORAGE_END_POINT, + STORAGE_ACCESS_KEY, + STORAGE_SECRET, + STORAGE_REGION, + STORAGE_BUCKET, + } = process.env; -if ( - !( - STORAGE_ACCESS_KEY && - STORAGE_END_POINT && - STORAGE_SECRET && - STORAGE_REGION && - STORAGE_BUCKET - ) -) { - throw new Error(`Storage is missing required configuration.`); -} + if ( + !( + STORAGE_ACCESS_KEY && + STORAGE_END_POINT && + STORAGE_SECRET && + STORAGE_REGION && + STORAGE_BUCKET + ) + ) { + throw new Error(`Storage is missing required configuration.`); + } + + return { + STORAGE_END_POINT, + STORAGE_ACCESS_KEY, + STORAGE_SECRET, + STORAGE_REGION, + STORAGE_BUCKET, + }; +}; const uploadStream = ({ Key }: Pick) => { + const { + STORAGE_END_POINT, + STORAGE_ACCESS_KEY, + STORAGE_SECRET, + STORAGE_REGION, + STORAGE_BUCKET, + } = envVars(); + const s3 = new AWS.S3({ endpoint: STORAGE_END_POINT, s3ForcePathStyle: false, diff --git a/app/features/team/routes/t.$customUrl.edit.tsx b/app/features/team/routes/t.$customUrl.edit.tsx index 31d8eeb44..7b2f4c8f1 100644 --- a/app/features/team/routes/t.$customUrl.edit.tsx +++ b/app/features/team/routes/t.$customUrl.edit.tsx @@ -1,4 +1,8 @@ -import type { LinksFunction } from "@remix-run/node"; +import type { + LinksFunction, + MetaFunction, + SerializeFrom, +} from "@remix-run/node"; import { type LoaderArgs, redirect, @@ -20,6 +24,7 @@ import { } from "~/utils/remix"; import { mySlugify, + navIconUrl, teamPage, TEAM_SEARCH_PAGE, uploadImagePage, @@ -35,18 +40,41 @@ import { deleteTeam } from "../queries/deleteTeam.server"; import { Button } from "~/components/Button"; import { assertUnreachable } from "~/utils/types"; import styles from "../team.css"; +import { makeTitle } from "~/utils/strings"; export const links: LinksFunction = () => { return [{ rel: "stylesheet", href: styles }]; }; +export const meta: MetaFunction = ({ + data, +}: { + data: SerializeFrom; +}) => { + if (!data) return {}; + + return { + title: makeTitle(data.team.name), + }; +}; + export const handle: SendouRouteHandle = { i18n: ["team"], - // breadcrumb: () => ({ - // imgPath: navIconUrl("object-damage-calculator"), - // href: OBJECT_DAMAGE_CALCULATOR_URL, - // type: "IMAGE", - // }), + breadcrumb: ({ match }) => { + const data = match.data as SerializeFrom; + return [ + { + imgPath: navIconUrl("t"), + href: TEAM_SEARCH_PAGE, + type: "IMAGE", + }, + { + text: data.team.name, + href: teamPage(data.team.customUrl), + type: "TEXT", + }, + ]; + }, }; export const action: ActionFunction = async ({ request, params }) => { diff --git a/app/features/team/routes/t.$customUrl.join.tsx b/app/features/team/routes/t.$customUrl.join.tsx index 219fff8de..44a601aad 100644 --- a/app/features/team/routes/t.$customUrl.join.tsx +++ b/app/features/team/routes/t.$customUrl.join.tsx @@ -12,8 +12,8 @@ import { useTranslation } from "~/hooks/useTranslation"; import { requireUser } from "~/modules/auth"; import { notFoundIfFalsy, - type SendouRouteHandle, validate, + type SendouRouteHandle, } from "~/utils/remix"; import { teamPage } from "~/utils/urls"; import { addNewTeamMember } from "../queries/addNewTeamMember.server"; @@ -53,11 +53,6 @@ export const action: ActionFunction = async ({ request, params }) => { export const handle: SendouRouteHandle = { i18n: ["team"], - // breadcrumb: () => ({ - // imgPath: navIconUrl("object-damage-calculator"), - // href: OBJECT_DAMAGE_CALCULATOR_URL, - // type: "IMAGE", - // }), }; export const loader = async ({ request, params }: LoaderArgs) => { diff --git a/app/features/team/routes/t.$customUrl.roster.tsx b/app/features/team/routes/t.$customUrl.roster.tsx index d949829fd..df87206f0 100644 --- a/app/features/team/routes/t.$customUrl.roster.tsx +++ b/app/features/team/routes/t.$customUrl.roster.tsx @@ -1,4 +1,8 @@ -import type { LinksFunction } from "@remix-run/node"; +import type { + LinksFunction, + MetaFunction, + SerializeFrom, +} from "@remix-run/node"; import { redirect, type ActionFunction, @@ -18,9 +22,14 @@ import { useTranslation } from "~/hooks/useTranslation"; import { requireUser, useUser } from "~/modules/auth"; import type { SendouRouteHandle } from "~/utils/remix"; import { notFoundIfFalsy, parseRequestFormData, validate } from "~/utils/remix"; -import { discordFullName } from "~/utils/strings"; +import { discordFullName, makeTitle } from "~/utils/strings"; import { assertUnreachable } from "~/utils/types"; -import { joinTeamPage, teamPage } from "~/utils/urls"; +import { + joinTeamPage, + navIconUrl, + teamPage, + TEAM_SEARCH_PAGE, +} from "~/utils/urls"; import { editRole } from "../queries/editRole.server"; import { findByIdentifier } from "../queries/findByIdentifier.server"; import { inviteCodeById } from "../queries/inviteCodeById.server"; @@ -37,6 +46,18 @@ export const links: LinksFunction = () => { return [{ rel: "stylesheet", href: styles }]; }; +export const meta: MetaFunction = ({ + data, +}: { + data: SerializeFrom; +}) => { + if (!data) return {}; + + return { + title: makeTitle(data.team.name), + }; +}; + export const action: ActionFunction = async ({ request, params }) => { const user = await requireUser(request); @@ -86,11 +107,21 @@ export const action: ActionFunction = async ({ request, params }) => { export const handle: SendouRouteHandle = { i18n: ["team"], - // breadcrumb: () => ({ - // imgPath: navIconUrl("object-damage-calculator"), - // href: OBJECT_DAMAGE_CALCULATOR_URL, - // type: "IMAGE", - // }), + breadcrumb: ({ match }) => { + const data = match.data as SerializeFrom; + return [ + { + imgPath: navIconUrl("t"), + href: TEAM_SEARCH_PAGE, + type: "IMAGE", + }, + { + text: data.team.name, + href: teamPage(data.team.customUrl), + type: "TEXT", + }, + ]; + }, }; export const loader = async ({ request, params }: LoaderArgs) => { diff --git a/app/features/team/routes/t.$customUrl.tsx b/app/features/team/routes/t.$customUrl.tsx index c2406d0d6..6bea1e8e0 100644 --- a/app/features/team/routes/t.$customUrl.tsx +++ b/app/features/team/routes/t.$customUrl.tsx @@ -23,6 +23,9 @@ import { makeTitle } from "~/utils/strings"; import { editTeamPage, manageTeamRosterPage, + navIconUrl, + teamPage, + TEAM_SEARCH_PAGE, userPage, userSubmittedImage, } from "~/utils/urls"; @@ -65,11 +68,21 @@ export const action: ActionFunction = async ({ request, params }) => { export const handle: SendouRouteHandle = { i18n: ["team"], - // breadcrumb: () => ({ - // imgPath: navIconUrl("object-damage-calculator"), - // href: OBJECT_DAMAGE_CALCULATOR_URL, - // type: "IMAGE", - // }), + breadcrumb: ({ match }) => { + const data = match.data as SerializeFrom; + return [ + { + imgPath: navIconUrl("t"), + href: TEAM_SEARCH_PAGE, + type: "IMAGE", + }, + { + text: data.team.name, + href: teamPage(data.team.customUrl), + type: "TEXT", + }, + ]; + }, }; export const loader = ({ params }: LoaderArgs) => { diff --git a/app/features/team/routes/t.tsx b/app/features/team/routes/t.tsx index c74758580..8edba0a6a 100644 --- a/app/features/team/routes/t.tsx +++ b/app/features/team/routes/t.tsx @@ -2,6 +2,8 @@ import type { ActionFunction, LinksFunction, LoaderArgs, + MetaFunction, + SerializeFrom, } from "@remix-run/node"; import { redirect } from "@remix-run/node"; import { @@ -21,11 +23,14 @@ import { Main } from "~/components/Main"; import { SubmitButton } from "~/components/SubmitButton"; import { useTranslation } from "~/hooks/useTranslation"; import { getUser, requireUser, useUser } from "~/modules/auth"; +import { i18next } from "~/modules/i18n"; import { joinListToNaturalString } from "~/utils/arrays"; import type { SendouRouteHandle } from "~/utils/remix"; import { parseRequestFormData, validate } from "~/utils/remix"; +import { makeTitle } from "~/utils/strings"; import { mySlugify, + navIconUrl, teamPage, TEAM_SEARCH_PAGE, userSubmittedImage, @@ -36,6 +41,18 @@ import { TEAM } from "../team-constants"; import { createTeamSchema } from "../team-schemas.server"; import styles from "../team.css"; +export const meta: MetaFunction = ({ + data, +}: { + data: SerializeFrom; +}) => { + if (!data) return {}; + + return { + title: data.title, + }; +}; + export const links: LinksFunction = () => { return [{ rel: "stylesheet", href: styles }]; }; @@ -73,15 +90,16 @@ export const action: ActionFunction = async ({ request }) => { export const handle: SendouRouteHandle = { i18n: ["team"], - // breadcrumb: () => ({ - // imgPath: navIconUrl("object-damage-calculator"), - // href: OBJECT_DAMAGE_CALCULATOR_URL, - // type: "IMAGE", - // }), + breadcrumb: () => ({ + imgPath: navIconUrl("t"), + href: TEAM_SEARCH_PAGE, + type: "IMAGE", + }), }; export const loader = async ({ request }: LoaderArgs) => { const user = await getUser(request); + const t = await i18next.getFixedT(request); const teams = allTeams().sort((teamA, teamB) => { // show own team first always @@ -122,6 +140,7 @@ export const loader = async ({ request }: LoaderArgs) => { }); return { + title: makeTitle(t("pages.t")), teams, isMemberOfTeam: !user ? false diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 9c91329e1..3c2a7b9ff 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -14,6 +14,7 @@ "pages.object-damage-calculator": "DMG Calc", "pages.myPage": "My Page", "pages.u": "User Search", + "pages.t": "Teams", "header.profile": "Profile", "header.logout": "Log out", diff --git a/public/static-assets/img/layout/t.avif b/public/static-assets/img/layout/t.avif new file mode 100644 index 0000000000000000000000000000000000000000..139b6dd22bea48c0b62fdb9ac942311ff2ffa0fa GIT binary patch literal 7705 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

3^CHw3({$`yUR@Ea2VVe3hiwPHaK>CVUC^ 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 literal 0 HcmV?d00001