Merge branch 'develop'
This commit is contained in:
commit
19adc7d07f
@ -2,7 +2,7 @@
|
||||
|
||||
import { AppShell } from "../../components/AppShell";
|
||||
import { apiClient } from "@/lib/api";
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
import { Suspense, useEffect, useMemo, useState } from "react";
|
||||
import dynamic from "next/dynamic";
|
||||
import { usePathname, useRouter, useSearchParams } from "next/navigation";
|
||||
import type { Document } from "@/types/api";
|
||||
@ -63,6 +63,25 @@ function formatDate(value?: string): string {
|
||||
}
|
||||
|
||||
export default function DocumentsPage() {
|
||||
return (
|
||||
<Suspense fallback={<DocumentsPageFallback />}>
|
||||
<DocumentsPageContent />
|
||||
</Suspense>
|
||||
);
|
||||
}
|
||||
|
||||
function DocumentsPageFallback() {
|
||||
return (
|
||||
<AppShell>
|
||||
<section className="rounded-2xl bg-white p-6 text-center shadow-sm ring-1 ring-gray-100">
|
||||
<div className="inline-block h-5 w-5 animate-spin rounded-full border-2 border-gray-300 border-t-sky-600"></div>
|
||||
<p className="mt-3 text-sm text-gray-500">Загрузка документов...</p>
|
||||
</section>
|
||||
</AppShell>
|
||||
);
|
||||
}
|
||||
|
||||
function DocumentsPageContent() {
|
||||
const router = useRouter();
|
||||
const pathname = usePathname();
|
||||
const searchParams = useSearchParams();
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import React, { useEffect, useLayoutEffect, useMemo, useRef, useState, useCallback } from "react";
|
||||
import React, { Suspense, useEffect, useLayoutEffect, useMemo, useRef, useState, useCallback } from "react";
|
||||
import { useParams, usePathname, useRouter, useSearchParams } from "next/navigation";
|
||||
import { MessageCircle, ChevronDown, ChevronLeft, ChevronRight } from "lucide-react";
|
||||
import { AppShell } from "../../../components/AppShell";
|
||||
@ -61,6 +61,25 @@ function formatDateInputValue(date: Date): string {
|
||||
/* ─── component ─── */
|
||||
|
||||
export default function MessageDialogPage() {
|
||||
return (
|
||||
<Suspense fallback={<MessageDialogPageFallback />}>
|
||||
<MessageDialogPageContent />
|
||||
</Suspense>
|
||||
);
|
||||
}
|
||||
|
||||
function MessageDialogPageFallback() {
|
||||
return (
|
||||
<AppShell>
|
||||
<section className="rounded-2xl bg-white p-6 text-center shadow-sm ring-1 ring-gray-100">
|
||||
<div className="inline-block h-5 w-5 animate-spin rounded-full border-2 border-gray-300 border-t-sky-600"></div>
|
||||
<p className="mt-3 text-sm text-gray-500">Загрузка чата...</p>
|
||||
</section>
|
||||
</AppShell>
|
||||
);
|
||||
}
|
||||
|
||||
function MessageDialogPageContent() {
|
||||
const params = useParams<{ chatId: string }>();
|
||||
const router = useRouter();
|
||||
const pathname = usePathname();
|
||||
|
||||
@ -5,7 +5,7 @@ import { AppShell } from "../components/AppShell";
|
||||
import { Modal } from "@/components/ui";
|
||||
import { apiClient } from "@/lib/api";
|
||||
import { resolveMediaUrl } from "@/lib/url";
|
||||
import { useEffect, useRef, useState } from "react";
|
||||
import { Suspense, useEffect, useRef, useState } from "react";
|
||||
import { usePathname, useRouter, useSearchParams } from "next/navigation";
|
||||
import type { Comment, Post } from "@/types/api";
|
||||
import { useUser } from "@/contexts/UserContext";
|
||||
@ -19,6 +19,25 @@ type LikeUser = {
|
||||
};
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<Suspense fallback={<HomePageFallback />}>
|
||||
<HomePageContent />
|
||||
</Suspense>
|
||||
);
|
||||
}
|
||||
|
||||
function HomePageFallback() {
|
||||
return (
|
||||
<AppShell>
|
||||
<section className="rounded-2xl bg-white p-6 text-center shadow-sm ring-1 ring-gray-100">
|
||||
<div className="inline-block h-5 w-5 animate-spin rounded-full border-2 border-gray-300 border-t-sky-600"></div>
|
||||
<p className="mt-3 text-sm text-gray-500">Загрузка ленты...</p>
|
||||
</section>
|
||||
</AppShell>
|
||||
);
|
||||
}
|
||||
|
||||
function HomePageContent() {
|
||||
const { user } = useUser();
|
||||
const router = useRouter();
|
||||
const pathname = usePathname();
|
||||
|
||||
@ -6,7 +6,7 @@ import { Modal } from "@/components/ui";
|
||||
import { apiClient } from "@/lib/api";
|
||||
import { useUser } from "@/contexts/UserContext";
|
||||
import { canManageRequests, canProcessRequests } from "@/lib/permissions";
|
||||
import { useEffect, useRef } from "react";
|
||||
import { Suspense, useEffect, useRef } from "react";
|
||||
import Link from "next/link";
|
||||
import { usePathname, useRouter, useSearchParams } from "next/navigation";
|
||||
import type { User } from "@/types/api";
|
||||
@ -25,6 +25,25 @@ import {
|
||||
const SwipeApprovalMode = dynamic(() => import("@/components/requests/SwipeApprovalMode"), { ssr: false });
|
||||
|
||||
export default function RequestsPage() {
|
||||
return (
|
||||
<Suspense fallback={<RequestsPageFallback />}>
|
||||
<RequestsPageContent />
|
||||
</Suspense>
|
||||
);
|
||||
}
|
||||
|
||||
function RequestsPageFallback() {
|
||||
return (
|
||||
<AppShell>
|
||||
<section className="rounded-2xl bg-white p-6 text-center shadow-sm ring-1 ring-gray-100">
|
||||
<div className="inline-block h-5 w-5 animate-spin rounded-full border-2 border-gray-300 border-t-sky-600"></div>
|
||||
<p className="mt-3 text-sm text-gray-500">Загрузка заявлений...</p>
|
||||
</section>
|
||||
</AppShell>
|
||||
);
|
||||
}
|
||||
|
||||
function RequestsPageContent() {
|
||||
const { user } = useUser();
|
||||
const router = useRouter();
|
||||
const pathname = usePathname();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user