lambert
lambert
TTCTheo's Typesafe Cult
Created by lambert on 5/27/2023 in #questions
Search URL structuring
Hi guys, I have a dynamic URL in Next: search/[word]/[[...rest]] and I was wondering how would I parse this best? I don't want to build the URL out directly, I want to keep it somewhat dynamic so I can do something like this: /search/Hello T3/tags/typescript|next/length/1-10 and structure it any way I like and leave stuff out I don't need. My code currently is this, but I feel like this is super stupid:
// Find Index where tags Param is in URL
const tagsIndex = params.rest.findIndex((r) => r === 'tags');
// Get the next param where the values for it are
const tagsPosition = tagsIndex !== -1 ? tagsIndex + 1 : -1;
// Read out the values
const searchTags = tagsPosition !== -1 ? params.rest[tagsPosition]?.split('%7C') ?? [] : [];

const temporaryTokensIndex = params.rest.findIndex((r) => r === 'temporary');
const temporaryTokensPosition = temporaryTokensIndex !== -1 ? temporaryTokensIndex + 1 : -1;
const temporaryTokens =
temporaryTokensPosition !== -1
? params.rest[temporaryTokensPosition]?.split('-').map((t) => parseInt(t)) ?? [0, 0]
: [0, 0];
// Swap if in X-Y X is greater than Y
if (
temporaryTokens[0] &&
temporaryTokens[1] &&
(temporaryTokens[0] ?? 0 > temporaryTokens[1] ?? 0)
) {
const temp = temporaryTokens[1];
temporaryTokens[1] = temporaryTokens[0];
temporaryTokens[0] = temp;
}

const permanentTokensIndex = params.rest.findIndex((r) => r === 'permanent');
const permanentTokensPosition = permanentTokensIndex !== -1 ? permanentTokensIndex + 1 : -1;
const permanentTokens =
permanentTokensPosition !== -1
? params.rest[permanentTokensPosition]?.split('-').map((t) => parseInt(t)) ?? [0, 0]
: [0, 0];
if (
permanentTokens[0] &&
permanentTokens[1] &&
(permanentTokens[0] ?? 0 > permanentTokens[1] ?? 0)
) {
const temp = permanentTokens[1];
permanentTokens[1] = permanentTokens[0];
permanentTokens[0] = temp;
}
// Find Index where tags Param is in URL
const tagsIndex = params.rest.findIndex((r) => r === 'tags');
// Get the next param where the values for it are
const tagsPosition = tagsIndex !== -1 ? tagsIndex + 1 : -1;
// Read out the values
const searchTags = tagsPosition !== -1 ? params.rest[tagsPosition]?.split('%7C') ?? [] : [];

const temporaryTokensIndex = params.rest.findIndex((r) => r === 'temporary');
const temporaryTokensPosition = temporaryTokensIndex !== -1 ? temporaryTokensIndex + 1 : -1;
const temporaryTokens =
temporaryTokensPosition !== -1
? params.rest[temporaryTokensPosition]?.split('-').map((t) => parseInt(t)) ?? [0, 0]
: [0, 0];
// Swap if in X-Y X is greater than Y
if (
temporaryTokens[0] &&
temporaryTokens[1] &&
(temporaryTokens[0] ?? 0 > temporaryTokens[1] ?? 0)
) {
const temp = temporaryTokens[1];
temporaryTokens[1] = temporaryTokens[0];
temporaryTokens[0] = temp;
}

const permanentTokensIndex = params.rest.findIndex((r) => r === 'permanent');
const permanentTokensPosition = permanentTokensIndex !== -1 ? permanentTokensIndex + 1 : -1;
const permanentTokens =
permanentTokensPosition !== -1
? params.rest[permanentTokensPosition]?.split('-').map((t) => parseInt(t)) ?? [0, 0]
: [0, 0];
if (
permanentTokens[0] &&
permanentTokens[1] &&
(permanentTokens[0] ?? 0 > permanentTokens[1] ?? 0)
) {
const temp = permanentTokens[1];
permanentTokens[1] = permanentTokens[0];
permanentTokens[0] = temp;
}
2 replies
TTCTheo's Typesafe Cult
Created by lambert on 3/14/2023 in #questions
TRPC & ReactQuery: How to check if logged in
Hi Guys, how would you check if the current User is logged in? I tried creating a Query which would return a Boolean, extract it into a Component and then conditionally render the Child or a NavitgateTo Component but that resulted in endless re-renders. I don't have the Code right now but it was just a useQuery which would check for isSuccess and data.loggedIn. Thanks in advance!
3 replies
TTCTheo's Typesafe Cult
Created by lambert on 2/10/2023 in #questions
Turborepo & Prisma Environment Variables
Hi, I'm currently setting up my Monorepo with Turborepo and env-vars are... weird.. with it. The problem I'm currently having is, when I'm doing npx prisma db push in my apps/server Folder, it complains about not finding the env file which Turborepo requires to have in the Root of the Workspace. The current "solution" I have is a .env file in the root and the app, but I don't want to update my .env in two places. Thanks in advance!
2 replies