This commit is contained in:
David Nguyen
2025-02-04 16:24:26 +11:00
parent e5a9d9ddf0
commit 381a9d3fb8
61 changed files with 1932 additions and 300 deletions

View File

@ -3,7 +3,7 @@ import { Trans, msg } from '@lingui/macro';
import { useLingui } from '@lingui/react';
import { ChevronLeft } from 'lucide-react';
import { Link, Outlet, isRouteErrorResponse, redirect, useNavigate } from 'react-router';
import { getRequiredSessionContext } from 'server/utils/get-required-session-context';
import { getRequiredLoaderSession } from 'server/utils/get-required-session-context';
import { match } from 'ts-pattern';
import { AppErrorCode } from '@documenso/lib/errors/app-error';
@ -15,7 +15,7 @@ import { TeamProvider } from '~/providers/team';
import type { Route } from './+types/_layout';
export const loader = ({ context }: Route.LoaderArgs) => {
const { currentTeam } = getRequiredSessionContext(context);
const { currentTeam } = getRequiredLoaderSession(context);
if (!currentTeam) {
throw redirect('/documents');

View File

@ -1,6 +1,6 @@
import { Trans } from '@lingui/macro';
import { Outlet } from 'react-router';
import { getRequiredTeamSessionContext } from 'server/utils/get-required-session-context';
import { getRequiredLoaderTeamSession } from 'server/utils/get-required-session-context';
import { canExecuteTeamAction } from '@documenso/lib/utils/teams';
@ -9,10 +9,9 @@ import { TeamSettingsMobileNav } from '~/components/general/teams/team-settings-
import type { Route } from '../+types/_layout';
export async function loader({ context }: Route.LoaderArgs) {
const { currentTeam: team } = getRequiredTeamSessionContext(context);
export function loader({ context }: Route.LoaderArgs) {
const { currentTeam: team } = getRequiredLoaderTeamSession(context);
// Todo: Test that 404 page shows up from error.
if (!team || !canExecuteTeamAction('MANAGE_TEAM', team.currentTeamMember.role)) {
throw new Response(null, { status: 401 }); // Unauthorized.
}

View File

@ -1,7 +1,7 @@
import { Plural, Trans, msg } from '@lingui/macro';
import { useLingui } from '@lingui/react';
import { DateTime } from 'luxon';
import { getRequiredTeamSessionContext } from 'server/utils/get-required-session-context';
import { getRequiredLoaderTeamSession } from 'server/utils/get-required-session-context';
import type Stripe from 'stripe';
import { match } from 'ts-pattern';
@ -16,7 +16,7 @@ import { TeamBillingPortalButton } from '~/components/general/teams/team-billing
import type { Route } from './+types/billing';
export async function loader({ context }: Route.LoaderArgs) {
const { currentTeam: team } = getRequiredTeamSessionContext(context);
const { currentTeam: team } = getRequiredLoaderTeamSession(context);
let teamSubscription: Stripe.Subscription | null = null;

View File

@ -1,4 +1,4 @@
import { getRequiredTeamSessionContext } from 'server/utils/get-required-session-context';
import { getRequiredLoaderTeamSession } from 'server/utils/get-required-session-context';
import { getTeamPublicProfile } from '@documenso/lib/server-only/team/get-team-public-profile';
@ -7,7 +7,7 @@ import PublicProfilePage from '~/routes/_authenticated+/settings+/public-profile
import type { Route } from './+types/public-profile';
export async function loader({ context }: Route.LoaderArgs) {
const { user, currentTeam: team } = getRequiredTeamSessionContext(context);
const { user, currentTeam: team } = getRequiredLoaderTeamSession(context);
const { profile } = await getTeamPublicProfile({
userId: user.id,

View File

@ -1,7 +1,7 @@
import { Trans } from '@lingui/macro';
import { useLingui } from '@lingui/react';
import { DateTime } from 'luxon';
import { getRequiredTeamSessionContext } from 'server/utils/get-required-session-context';
import { getRequiredLoaderTeamSession } from 'server/utils/get-required-session-context';
import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { getTeamTokens } from '@documenso/lib/server-only/public-api/get-all-team-tokens';
@ -13,7 +13,7 @@ import { ApiTokenForm } from '~/components/forms/token';
import type { Route } from './+types/tokens';
export async function loader({ context }: Route.LoaderArgs) {
const { user, currentTeam: team } = getRequiredTeamSessionContext(context);
const { user, currentTeam: team } = getRequiredLoaderTeamSession(context);
const tokens = await getTeamTokens({ userId: user.id, teamId: team.id }).catch(() => null);