mirror of
https://github.com/documenso/documenso.git
synced 2025-11-21 20:21:38 +10:00
fix: wip
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
import { Outlet, redirect } from 'react-router';
|
||||
import { Outlet } from 'react-router';
|
||||
import { getLoaderSession } from 'server/utils/get-loader-session';
|
||||
|
||||
import { getLimits } from '@documenso/ee/server-only/limits/client';
|
||||
import { LimitsProvider } from '@documenso/ee/server-only/limits/provider/client';
|
||||
@ -11,29 +12,25 @@ import { VerifyEmailBanner } from '~/components/general/verify-email-banner';
|
||||
|
||||
import type { Route } from './+types/_layout';
|
||||
|
||||
export const loader = async ({ request, context }: Route.LoaderArgs) => {
|
||||
const { session } = context;
|
||||
|
||||
if (!session) {
|
||||
throw redirect('/signin');
|
||||
}
|
||||
export const loader = async ({ request }: Route.LoaderArgs) => {
|
||||
const { user, teams, currentTeam } = getLoaderSession();
|
||||
|
||||
const requestHeaders = Object.fromEntries(request.headers.entries());
|
||||
|
||||
// Todo: Should only load this on first render.
|
||||
const [limits, banner] = await Promise.all([
|
||||
getLimits({ headers: requestHeaders, teamId: session.currentTeam?.id }),
|
||||
getLimits({ headers: requestHeaders, teamId: currentTeam?.id }),
|
||||
getSiteSettings().then((settings) =>
|
||||
settings.find((setting) => setting.id === SITE_SETTINGS_BANNER_ID),
|
||||
),
|
||||
]);
|
||||
|
||||
return {
|
||||
user: session.user,
|
||||
teams: session.teams,
|
||||
user,
|
||||
teams,
|
||||
banner,
|
||||
limits,
|
||||
teamId: session.currentTeam?.id,
|
||||
teamId: currentTeam?.id,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@ -1,16 +1,14 @@
|
||||
import { Trans } from '@lingui/macro';
|
||||
import { BarChart3, FileStack, Settings, Trophy, Users, Wallet2 } from 'lucide-react';
|
||||
import { Link, Outlet, redirect, useLocation } from 'react-router';
|
||||
import { getRequiredLoaderSession } from 'server/utils/get-loader-session';
|
||||
import { getLoaderSession } from 'server/utils/get-loader-session';
|
||||
|
||||
import { isAdmin } from '@documenso/lib/next-auth/guards/is-admin';
|
||||
import { cn } from '@documenso/ui/lib/utils';
|
||||
import { Button } from '@documenso/ui/primitives/button';
|
||||
|
||||
import type { Route } from './+types/_layout';
|
||||
|
||||
export function loader({ context }: Route.LoaderArgs) {
|
||||
const { user } = getRequiredLoaderSession(context);
|
||||
export function loader() {
|
||||
const { user } = getLoaderSession();
|
||||
|
||||
if (!user || !isAdmin(user)) {
|
||||
throw redirect('/documents');
|
||||
|
||||
@ -3,7 +3,7 @@ import { useLingui } from '@lingui/react';
|
||||
import { DocumentStatus, TeamMemberRole } from '@prisma/client';
|
||||
import { ChevronLeft, Clock9, Users2 } from 'lucide-react';
|
||||
import { Link, redirect } from 'react-router';
|
||||
import { getRequiredLoaderSession } from 'server/utils/get-loader-session';
|
||||
import { getLoaderSession } from 'server/utils/get-loader-session';
|
||||
import { match } from 'ts-pattern';
|
||||
|
||||
import { useSession } from '@documenso/lib/client-only/providers/session';
|
||||
@ -34,8 +34,8 @@ import { superLoaderJson, useSuperLoaderData } from '~/utils/super-json-loader';
|
||||
|
||||
import type { Route } from './+types/$id._index';
|
||||
|
||||
export async function loader({ params, context }: Route.LoaderArgs) {
|
||||
const { user, currentTeam: team } = getRequiredLoaderSession(context);
|
||||
export async function loader({ params }: Route.LoaderArgs) {
|
||||
const { user, currentTeam: team } = getLoaderSession();
|
||||
|
||||
const { id } = params;
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ import { Plural, Trans } from '@lingui/macro';
|
||||
import { DocumentStatus as InternalDocumentStatus, TeamMemberRole } from '@prisma/client';
|
||||
import { ChevronLeft, Users2 } from 'lucide-react';
|
||||
import { Link, redirect } from 'react-router';
|
||||
import { getRequiredLoaderSession } from 'server/utils/get-loader-session';
|
||||
import { getLoaderSession } from 'server/utils/get-loader-session';
|
||||
import { match } from 'ts-pattern';
|
||||
|
||||
import { isUserEnterprise } from '@documenso/ee/server-only/util/is-document-enterprise';
|
||||
@ -17,8 +17,8 @@ import { superLoaderJson, useSuperLoaderData } from '~/utils/super-json-loader';
|
||||
|
||||
import type { Route } from './+types/$id.edit';
|
||||
|
||||
export async function loader({ params, context }: Route.LoaderArgs) {
|
||||
const { user, currentTeam: team } = getRequiredLoaderSession(context);
|
||||
export async function loader({ params }: Route.LoaderArgs) {
|
||||
const { user, currentTeam: team } = getLoaderSession();
|
||||
|
||||
const { id } = params;
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ import type { Recipient } from '@prisma/client';
|
||||
import { ChevronLeft } from 'lucide-react';
|
||||
import { DateTime } from 'luxon';
|
||||
import { Link, redirect } from 'react-router';
|
||||
import { getRequiredLoaderSession } from 'server/utils/get-loader-session';
|
||||
import { getLoaderSession } from 'server/utils/get-loader-session';
|
||||
|
||||
import { getDocumentById } from '@documenso/lib/server-only/document/get-document-by-id';
|
||||
import { getRecipientsForDocument } from '@documenso/lib/server-only/recipient/get-recipients-for-document';
|
||||
@ -22,10 +22,10 @@ import { DocumentLogsTable } from '~/components/tables/document-logs-table';
|
||||
|
||||
import type { Route } from './+types/$id.logs';
|
||||
|
||||
export async function loader({ params, context }: Route.LoaderArgs) {
|
||||
export async function loader({ params }: Route.LoaderArgs) {
|
||||
const { id } = params;
|
||||
|
||||
const { user, currentTeam: team } = getRequiredLoaderSession(context);
|
||||
const { user, currentTeam: team } = getLoaderSession();
|
||||
|
||||
const documentId = Number(id);
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ import { Trans, msg } from '@lingui/macro';
|
||||
import { useLingui } from '@lingui/react';
|
||||
import type { TemplateDirectLink } from '@prisma/client';
|
||||
import { TemplateType } from '@prisma/client';
|
||||
import { getRequiredLoaderSession } from 'server/utils/get-loader-session';
|
||||
import { getLoaderSession } from 'server/utils/get-loader-session';
|
||||
|
||||
import { useSession } from '@documenso/lib/client-only/providers/session';
|
||||
import { getUserPublicProfile } from '@documenso/lib/server-only/user/get-user-public-profile';
|
||||
@ -43,8 +43,8 @@ const teamProfileText = {
|
||||
templatesSubtitle: msg`Show templates in your team public profile for your audience to sign and get started quickly`,
|
||||
};
|
||||
|
||||
export async function loader({ context }: Route.LoaderArgs) {
|
||||
const { user } = getRequiredLoaderSession(context);
|
||||
export async function loader() {
|
||||
const { user } = getLoaderSession();
|
||||
|
||||
const { profile } = await getUserPublicProfile({
|
||||
userId: user.id,
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
import { redirect } from 'react-router';
|
||||
import { getLoaderSession } from 'server/utils/get-loader-session';
|
||||
|
||||
import { formatDocumentsPath } from '@documenso/lib/utils/teams';
|
||||
|
||||
import type { Route } from './+types/_index';
|
||||
|
||||
export function loader({ context }: Route.LoaderArgs) {
|
||||
if (!context.session?.currentTeam) {
|
||||
export function loader() {
|
||||
const { currentTeam } = getLoaderSession();
|
||||
if (!currentTeam) {
|
||||
throw redirect('/documents');
|
||||
}
|
||||
|
||||
throw redirect(formatDocumentsPath(context.session.currentTeam.url));
|
||||
throw redirect(formatDocumentsPath(currentTeam.url));
|
||||
}
|
||||
|
||||
@ -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 { getRequiredLoaderSession } from 'server/utils/get-loader-session';
|
||||
import { getLoaderSession } from 'server/utils/get-loader-session';
|
||||
import { match } from 'ts-pattern';
|
||||
|
||||
import { AppErrorCode } from '@documenso/lib/errors/app-error';
|
||||
@ -14,8 +14,8 @@ import { TeamProvider } from '~/providers/team';
|
||||
|
||||
import type { Route } from './+types/_layout';
|
||||
|
||||
export const loader = ({ context }: Route.LoaderArgs) => {
|
||||
const { currentTeam } = getRequiredLoaderSession(context);
|
||||
export const loader = () => {
|
||||
const { currentTeam } = getLoaderSession();
|
||||
|
||||
if (!currentTeam) {
|
||||
throw redirect('/documents');
|
||||
|
||||
@ -1,16 +1,14 @@
|
||||
import { Trans } from '@lingui/macro';
|
||||
import { Outlet } from 'react-router';
|
||||
import { getRequiredLoaderTeamSession } from 'server/utils/get-loader-session';
|
||||
import { getLoaderTeamSession } from 'server/utils/get-loader-session';
|
||||
|
||||
import { canExecuteTeamAction } from '@documenso/lib/utils/teams';
|
||||
|
||||
import { TeamSettingsNavDesktop } from '~/components/general/teams/team-settings-nav-desktop';
|
||||
import { TeamSettingsNavMobile } from '~/components/general/teams/team-settings-nav-mobile';
|
||||
|
||||
import type { Route } from '../+types/_layout';
|
||||
|
||||
export function loader({ context }: Route.LoaderArgs) {
|
||||
const { currentTeam: team } = getRequiredLoaderTeamSession(context);
|
||||
export function loader() {
|
||||
const { currentTeam: team } = getLoaderTeamSession();
|
||||
|
||||
if (!team || !canExecuteTeamAction('MANAGE_TEAM', team.currentTeamMember.role)) {
|
||||
throw new Response(null, { status: 401 }); // Unauthorized.
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { Plural, Trans, msg } from '@lingui/macro';
|
||||
import { useLingui } from '@lingui/react';
|
||||
import { DateTime } from 'luxon';
|
||||
import { getRequiredLoaderTeamSession } from 'server/utils/get-loader-session';
|
||||
import { getLoaderTeamSession } from 'server/utils/get-loader-session';
|
||||
import type Stripe from 'stripe';
|
||||
import { match } from 'ts-pattern';
|
||||
|
||||
@ -15,8 +15,8 @@ import { TeamSettingsBillingInvoicesTable } from '~/components/tables/team-setti
|
||||
|
||||
import type { Route } from './+types/billing';
|
||||
|
||||
export async function loader({ context }: Route.LoaderArgs) {
|
||||
const { currentTeam: team } = getRequiredLoaderTeamSession(context);
|
||||
export async function loader() {
|
||||
const { currentTeam: team } = getLoaderTeamSession();
|
||||
|
||||
let teamSubscription: Stripe.Subscription | null = null;
|
||||
|
||||
|
||||
@ -1,13 +1,11 @@
|
||||
import { getRequiredLoaderTeamSession } from 'server/utils/get-loader-session';
|
||||
import { getLoaderTeamSession } from 'server/utils/get-loader-session';
|
||||
|
||||
import { getTeamPublicProfile } from '@documenso/lib/server-only/team/get-team-public-profile';
|
||||
|
||||
import PublicProfilePage from '~/routes/_authenticated+/settings+/public-profile+/index';
|
||||
|
||||
import type { Route } from './+types/public-profile';
|
||||
|
||||
export async function loader({ context }: Route.LoaderArgs) {
|
||||
const { user, currentTeam: team } = getRequiredLoaderTeamSession(context);
|
||||
export async function loader() {
|
||||
const { user, currentTeam: team } = getLoaderTeamSession();
|
||||
|
||||
const { profile } = await getTeamPublicProfile({
|
||||
userId: user.id,
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { Trans } from '@lingui/macro';
|
||||
import { useLingui } from '@lingui/react';
|
||||
import { DateTime } from 'luxon';
|
||||
import { getRequiredLoaderTeamSession } from 'server/utils/get-loader-session';
|
||||
import { getLoaderTeamSession } from 'server/utils/get-loader-session';
|
||||
|
||||
import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
|
||||
import { getTeamTokens } from '@documenso/lib/server-only/public-api/get-all-team-tokens';
|
||||
@ -12,8 +12,8 @@ import { ApiTokenForm } from '~/components/forms/token';
|
||||
|
||||
import type { Route } from './+types/tokens';
|
||||
|
||||
export async function loader({ context }: Route.LoaderArgs) {
|
||||
const { user, currentTeam: team } = getRequiredLoaderTeamSession(context);
|
||||
export async function loader() {
|
||||
const { user, currentTeam: team } = getLoaderTeamSession();
|
||||
|
||||
const tokens = await getTeamTokens({ userId: user.id, teamId: team.id }).catch(() => null);
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ import { Trans } from '@lingui/macro';
|
||||
import { DocumentSigningOrder, SigningStatus } from '@prisma/client';
|
||||
import { ChevronLeft, LucideEdit } from 'lucide-react';
|
||||
import { Link, redirect, useNavigate } from 'react-router';
|
||||
import { getRequiredLoaderSession } from 'server/utils/get-loader-session';
|
||||
import { getLoaderSession } from 'server/utils/get-loader-session';
|
||||
|
||||
import { getTemplateById } from '@documenso/lib/server-only/template/get-template-by-id';
|
||||
import { formatDocumentsPath, formatTemplatesPath } from '@documenso/lib/utils/teams';
|
||||
@ -24,8 +24,8 @@ import { superLoaderJson, useSuperLoaderData } from '~/utils/super-json-loader';
|
||||
|
||||
import type { Route } from './+types/$id._index';
|
||||
|
||||
export async function loader({ params, context }: Route.LoaderArgs) {
|
||||
const { user, currentTeam: team } = getRequiredLoaderSession(context);
|
||||
export async function loader({ params }: Route.LoaderArgs) {
|
||||
const { user, currentTeam: team } = getLoaderSession();
|
||||
|
||||
const { id } = params;
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { Trans } from '@lingui/macro';
|
||||
import { ChevronLeft } from 'lucide-react';
|
||||
import { Link, redirect } from 'react-router';
|
||||
import { getRequiredLoaderSession } from 'server/utils/get-loader-session';
|
||||
import { getLoaderSession } from 'server/utils/get-loader-session';
|
||||
|
||||
import { isUserEnterprise } from '@documenso/ee/server-only/util/is-document-enterprise';
|
||||
import { getTemplateById } from '@documenso/lib/server-only/template/get-template-by-id';
|
||||
@ -15,8 +15,8 @@ import { superLoaderJson, useSuperLoaderData } from '~/utils/super-json-loader';
|
||||
import { TemplateDirectLinkDialogWrapper } from '../../../components/dialogs/template-direct-link-dialog-wrapper';
|
||||
import type { Route } from './+types/$id.edit';
|
||||
|
||||
export async function loader({ context, params }: Route.LoaderArgs) {
|
||||
const { user, currentTeam: team } = getRequiredLoaderSession(context);
|
||||
export async function loader({ params }: Route.LoaderArgs) {
|
||||
const { user, currentTeam: team } = getLoaderSession();
|
||||
|
||||
const { id } = params;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user