fix: grid virtualizer on mobile can't show any items
Signed-off-by: Innei <tukon479@gmail.com>
This commit is contained in:
parent
5bb01006ad
commit
2b93dfd58f
|
|
@ -6,8 +6,16 @@ import { useTypeScriptHappyCallback } from "@follow/hooks"
|
|||
import { LRUCache } from "@follow/utils/lru-cache"
|
||||
import type { Range, VirtualItem, Virtualizer } from "@tanstack/react-virtual"
|
||||
import { useVirtualizer } from "@tanstack/react-virtual"
|
||||
import type { FC } from "react"
|
||||
import { Fragment, startTransition, useEffect, useMemo, useState } from "react"
|
||||
import type { FC, MutableRefObject } from "react"
|
||||
import {
|
||||
Fragment,
|
||||
startTransition,
|
||||
useEffect,
|
||||
useLayoutEffect,
|
||||
useMemo,
|
||||
useRef,
|
||||
useState,
|
||||
} from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
|
||||
import { setUISetting, useUISettingKey } from "~/atoms/settings/ui"
|
||||
|
|
@ -101,16 +109,57 @@ const ratioMap = {
|
|||
// 16:9
|
||||
[FeedViewType.Videos]: 16 / 9,
|
||||
}
|
||||
const VirtualGrid: FC<EntryListProps> = (props) => {
|
||||
const { entriesIds, feedId, onRangeChange, fetchNextPage, view, Footer, hasNextPage, listRef } =
|
||||
props
|
||||
const scrollRef = useScrollViewElement()
|
||||
|
||||
const VirtualGrid: FC<EntryListProps> = (props) => {
|
||||
const scrollRef = useScrollViewElement()
|
||||
const [containerWidth, setContainerWidth] = useState(0)
|
||||
|
||||
const columns = useMemo(() => {
|
||||
if (!scrollRef) return [0]
|
||||
useEffect(() => {
|
||||
if (!scrollRef) return
|
||||
const handler = () => {
|
||||
const rem = Number.parseFloat(getComputedStyle(document.documentElement).fontSize)
|
||||
const width = scrollRef.clientWidth - 2 * rem
|
||||
setContainerWidth(width)
|
||||
|
||||
measureRef.current?.()
|
||||
}
|
||||
|
||||
const observer = new ResizeObserver(handler)
|
||||
handler()
|
||||
observer.observe(scrollRef)
|
||||
return () => {
|
||||
observer.disconnect()
|
||||
}
|
||||
}, [scrollRef])
|
||||
|
||||
const measureRef = useRef<() => void>()
|
||||
|
||||
if (!containerWidth) return null
|
||||
|
||||
return <VirtualGridImpl {...props} containerWidth={containerWidth} measureRef={measureRef} />
|
||||
}
|
||||
|
||||
const VirtualGridImpl: FC<
|
||||
EntryListProps & {
|
||||
containerWidth: number
|
||||
measureRef: MutableRefObject<(() => void) | undefined>
|
||||
}
|
||||
> = (props) => {
|
||||
const {
|
||||
entriesIds,
|
||||
feedId,
|
||||
onRangeChange,
|
||||
fetchNextPage,
|
||||
view,
|
||||
Footer,
|
||||
hasNextPage,
|
||||
listRef,
|
||||
measureRef,
|
||||
containerWidth,
|
||||
} = props
|
||||
const scrollRef = useScrollViewElement()
|
||||
|
||||
const columns = useMemo(() => {
|
||||
const width = containerWidth
|
||||
const rem = Number.parseFloat(getComputedStyle(document.documentElement).fontSize)
|
||||
let columnCount = 1 // default (grid-cols-1)
|
||||
|
|
@ -120,7 +169,7 @@ const VirtualGrid: FC<EntryListProps> = (props) => {
|
|||
if (width >= 80 * rem) columnCount = 5 // @8xl (80rem)
|
||||
|
||||
return Array.from({ length: columnCount }).fill(width / columnCount) as number[]
|
||||
}, [containerWidth, scrollRef])
|
||||
}, [containerWidth])
|
||||
|
||||
// Calculate rows based on entries
|
||||
const rows = useMemo(() => {
|
||||
|
|
@ -190,23 +239,12 @@ const VirtualGrid: FC<EntryListProps> = (props) => {
|
|||
listRef.current = rowVirtualizer
|
||||
}, [rowVirtualizer, listRef])
|
||||
|
||||
useEffect(() => {
|
||||
if (!scrollRef) return
|
||||
const handler = () => {
|
||||
const rem = Number.parseFloat(getComputedStyle(document.documentElement).fontSize)
|
||||
const width = scrollRef.clientWidth - 2 * rem
|
||||
setContainerWidth(width)
|
||||
|
||||
useLayoutEffect(() => {
|
||||
measureRef.current = () => {
|
||||
rowVirtualizer.measure()
|
||||
columnVirtualizer.measure()
|
||||
}
|
||||
|
||||
const observer = new ResizeObserver(handler)
|
||||
observer.observe(scrollRef)
|
||||
return () => {
|
||||
observer.disconnect()
|
||||
}
|
||||
}, [columnVirtualizer, rowVirtualizer, scrollRef])
|
||||
}, [columnVirtualizer, measureRef, rowVirtualizer])
|
||||
|
||||
const virtualItems = rowVirtualizer.getVirtualItems()
|
||||
useEffect(() => {
|
||||
|
|
@ -233,10 +271,9 @@ const VirtualGrid: FC<EntryListProps> = (props) => {
|
|||
|
||||
return (
|
||||
<div
|
||||
className="relative mx-4"
|
||||
className="relative mx-4 w-full"
|
||||
style={{
|
||||
height: `${rowVirtualizer.getTotalSize()}px`,
|
||||
width: `${columnVirtualizer.getTotalSize()}px`,
|
||||
}}
|
||||
>
|
||||
{rowVirtualizer.getVirtualItems().map((virtualRow) => {
|
||||
|
|
|
|||
|
|
@ -24,12 +24,7 @@ declare const authPlugins: ({
|
|||
method: "GET";
|
||||
}> | undefined)?]>(...ctx: C): Promise<C extends [{
|
||||
asResponse: true;
|
||||
}] ? Response : {
|
||||
[k: string]: {
|
||||
id: string;
|
||||
name: string;
|
||||
};
|
||||
}>;
|
||||
}] ? Response : any>;
|
||||
path: "/get-providers";
|
||||
options: {
|
||||
method: "GET";
|
||||
|
|
@ -58,6 +53,23 @@ declare const authPlugins: ({
|
|||
headers: Headers;
|
||||
};
|
||||
};
|
||||
} | {
|
||||
id: "updateUserccc";
|
||||
endpoints: {
|
||||
updateUserccc: {
|
||||
<C extends [(better_call.Context<"/update-user-ccc", {
|
||||
method: "POST";
|
||||
}> | undefined)?]>(...ctx: C): Promise<C extends [{
|
||||
asResponse: true;
|
||||
}] ? Response : string | null>;
|
||||
path: "/update-user-ccc";
|
||||
options: {
|
||||
method: "POST";
|
||||
};
|
||||
method: better_call.Method | better_call.Method[];
|
||||
headers: Headers;
|
||||
};
|
||||
};
|
||||
})[];
|
||||
|
||||
declare const achievements: drizzle_orm_pg_core.PgTableWithColumns<{
|
||||
|
|
@ -4735,10 +4747,10 @@ declare const user: drizzle_orm_pg_core.PgTableWithColumns<{
|
|||
emailVerified: drizzle_orm_pg_core.PgColumn<{
|
||||
name: "emailVerified";
|
||||
tableName: "user";
|
||||
dataType: "date";
|
||||
columnType: "PgTimestamp";
|
||||
data: Date;
|
||||
driverParam: string;
|
||||
dataType: "boolean";
|
||||
columnType: "PgBoolean";
|
||||
data: boolean;
|
||||
driverParam: boolean;
|
||||
notNull: false;
|
||||
hasDefault: false;
|
||||
isPrimaryKey: false;
|
||||
|
|
@ -4878,10 +4890,10 @@ declare const users: drizzle_orm_pg_core.PgTableWithColumns<{
|
|||
emailVerified: drizzle_orm_pg_core.PgColumn<{
|
||||
name: "emailVerified";
|
||||
tableName: "user";
|
||||
dataType: "date";
|
||||
columnType: "PgTimestamp";
|
||||
data: Date;
|
||||
driverParam: string;
|
||||
dataType: "boolean";
|
||||
columnType: "PgBoolean";
|
||||
data: boolean;
|
||||
driverParam: boolean;
|
||||
notNull: false;
|
||||
hasDefault: false;
|
||||
isPrimaryKey: false;
|
||||
|
|
@ -4968,7 +4980,7 @@ declare const usersOpenApiSchema: z.ZodObject<Omit<{
|
|||
id: z.ZodString;
|
||||
name: z.ZodNullable<z.ZodString>;
|
||||
email: z.ZodString;
|
||||
emailVerified: z.ZodNullable<z.ZodString>;
|
||||
emailVerified: z.ZodNullable<z.ZodBoolean>;
|
||||
image: z.ZodNullable<z.ZodString>;
|
||||
handle: z.ZodNullable<z.ZodString>;
|
||||
createdAt: z.ZodDate;
|
||||
|
|
@ -4976,7 +4988,7 @@ declare const usersOpenApiSchema: z.ZodObject<Omit<{
|
|||
}, "email">, z.UnknownKeysParam, z.ZodTypeAny, {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: Date;
|
||||
|
|
@ -4984,7 +4996,7 @@ declare const usersOpenApiSchema: z.ZodObject<Omit<{
|
|||
}, {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: Date;
|
||||
|
|
@ -6542,10 +6554,13 @@ declare const auth: {
|
|||
method: "GET";
|
||||
query: zod.ZodOptional<zod.ZodObject<{
|
||||
disableCookieCache: zod.ZodOptional<zod.ZodBoolean>;
|
||||
disableRefresh: zod.ZodOptional<zod.ZodBoolean>;
|
||||
}, "strip", zod.ZodTypeAny, {
|
||||
disableCookieCache?: boolean | undefined;
|
||||
disableRefresh?: boolean | undefined;
|
||||
}, {
|
||||
disableCookieCache?: boolean | undefined;
|
||||
disableRefresh?: boolean | undefined;
|
||||
}>>;
|
||||
requireHeaders: true;
|
||||
metadata: {
|
||||
|
|
@ -6599,12 +6614,7 @@ declare const auth: {
|
|||
method: "GET";
|
||||
}> | undefined)?]>(...ctx: C): Promise<C extends [{
|
||||
asResponse: true;
|
||||
}] ? Response : {
|
||||
[k: string]: {
|
||||
id: string;
|
||||
name: string;
|
||||
};
|
||||
}>;
|
||||
}] ? Response : any>;
|
||||
path: "/get-providers";
|
||||
options: {
|
||||
method: "GET";
|
||||
|
|
@ -6628,6 +6638,19 @@ declare const auth: {
|
|||
method: better_call.Method | better_call.Method[];
|
||||
headers: Headers;
|
||||
};
|
||||
updateUserccc: {
|
||||
<C extends [(better_call.Context<"/update-user-ccc", {
|
||||
method: "POST";
|
||||
}> | undefined)?]>(...ctx: C): Promise<C extends [{
|
||||
asResponse: true;
|
||||
}] ? Response : string | null>;
|
||||
path: "/update-user-ccc";
|
||||
options: {
|
||||
method: "POST";
|
||||
};
|
||||
method: better_call.Method | better_call.Method[];
|
||||
headers: Headers;
|
||||
};
|
||||
signInSocial: {
|
||||
<C extends [better_call.Context<"/sign-in/social", {
|
||||
method: "POST";
|
||||
|
|
@ -6722,6 +6745,28 @@ declare const auth: {
|
|||
}>]>(...ctx: C): Promise<C extends [{
|
||||
asResponse: true;
|
||||
}] ? Response : {
|
||||
session: {
|
||||
id: string;
|
||||
userId: string;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
expiresAt: Date;
|
||||
token: string;
|
||||
ipAddress?: string | null | undefined;
|
||||
userAgent?: string | null | undefined;
|
||||
};
|
||||
user: {
|
||||
id: string;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
email: string;
|
||||
emailVerified: boolean;
|
||||
name: string;
|
||||
image?: string | null | undefined;
|
||||
};
|
||||
url: undefined;
|
||||
redirect: boolean;
|
||||
} | {
|
||||
url: string;
|
||||
redirect: boolean;
|
||||
}>;
|
||||
|
|
@ -7989,20 +8034,20 @@ declare const auth: {
|
|||
<C extends [better_call.Context<"/update-user", {
|
||||
method: "POST";
|
||||
body: zod.ZodObject<{
|
||||
name: zod.ZodOptional<zod.ZodString>;
|
||||
image: zod.ZodOptional<zod.ZodString>;
|
||||
}, zod.UnknownKeysParam, zod.ZodTypeAny, {
|
||||
name?: string | undefined;
|
||||
image?: string | undefined;
|
||||
}, {
|
||||
name?: string | undefined;
|
||||
image?: string | undefined;
|
||||
}> & zod.ZodObject<{
|
||||
handle: zod.ZodString;
|
||||
}, zod.UnknownKeysParam, zod.ZodTypeAny, {
|
||||
handle: string;
|
||||
}, {
|
||||
handle: string;
|
||||
}> & zod.ZodObject<{
|
||||
name: zod.ZodOptional<zod.ZodString>;
|
||||
image: zod.ZodOptional<zod.ZodString | zod.ZodNull>;
|
||||
}, zod.UnknownKeysParam, zod.ZodTypeAny, {
|
||||
name?: string | undefined;
|
||||
image?: string | null | undefined;
|
||||
}, {
|
||||
name?: string | undefined;
|
||||
image?: string | null | undefined;
|
||||
}>;
|
||||
use: better_call.Endpoint<better_call.Handler<string, better_call.EndpointOptions, {
|
||||
session: {
|
||||
|
|
@ -8077,20 +8122,20 @@ declare const auth: {
|
|||
options: {
|
||||
method: "POST";
|
||||
body: zod.ZodObject<{
|
||||
name: zod.ZodOptional<zod.ZodString>;
|
||||
image: zod.ZodOptional<zod.ZodString>;
|
||||
}, zod.UnknownKeysParam, zod.ZodTypeAny, {
|
||||
name?: string | undefined;
|
||||
image?: string | undefined;
|
||||
}, {
|
||||
name?: string | undefined;
|
||||
image?: string | undefined;
|
||||
}> & zod.ZodObject<{
|
||||
handle: zod.ZodString;
|
||||
}, zod.UnknownKeysParam, zod.ZodTypeAny, {
|
||||
handle: string;
|
||||
}, {
|
||||
handle: string;
|
||||
}> & zod.ZodObject<{
|
||||
name: zod.ZodOptional<zod.ZodString>;
|
||||
image: zod.ZodOptional<zod.ZodString | zod.ZodNull>;
|
||||
}, zod.UnknownKeysParam, zod.ZodTypeAny, {
|
||||
name?: string | undefined;
|
||||
image?: string | null | undefined;
|
||||
}, {
|
||||
name?: string | undefined;
|
||||
image?: string | null | undefined;
|
||||
}>;
|
||||
use: better_call.Endpoint<better_call.Handler<string, better_call.EndpointOptions, {
|
||||
session: {
|
||||
|
|
@ -8161,15 +8206,8 @@ declare const auth: {
|
|||
headers: Headers;
|
||||
};
|
||||
deleteUser: {
|
||||
<C extends [better_call.Context<"/delete-user", {
|
||||
<C extends [(better_call.Context<"/delete-user", {
|
||||
method: "POST";
|
||||
body: zod.ZodObject<{
|
||||
password: zod.ZodString;
|
||||
}, "strip", zod.ZodTypeAny, {
|
||||
password: string;
|
||||
}, {
|
||||
password: string;
|
||||
}>;
|
||||
use: better_call.Endpoint<better_call.Handler<string, better_call.EndpointOptions, {
|
||||
session: {
|
||||
session: Record<string, any> & {
|
||||
|
|
@ -8210,19 +8248,15 @@ declare const auth: {
|
|||
};
|
||||
};
|
||||
};
|
||||
}>]>(...ctx: C): Promise<C extends [{
|
||||
}> | undefined)?]>(...ctx: C): Promise<C extends [{
|
||||
asResponse: true;
|
||||
}] ? Response : null>;
|
||||
}] ? Response : {
|
||||
success: boolean;
|
||||
message: string;
|
||||
}>;
|
||||
path: "/delete-user";
|
||||
options: {
|
||||
method: "POST";
|
||||
body: zod.ZodObject<{
|
||||
password: zod.ZodString;
|
||||
}, "strip", zod.ZodTypeAny, {
|
||||
password: string;
|
||||
}, {
|
||||
password: string;
|
||||
}>;
|
||||
use: better_call.Endpoint<better_call.Handler<string, better_call.EndpointOptions, {
|
||||
session: {
|
||||
session: Record<string, any> & {
|
||||
|
|
@ -9071,6 +9105,36 @@ declare const auth: {
|
|||
method: better_call.Method | better_call.Method[];
|
||||
headers: Headers;
|
||||
};
|
||||
deleteUserCallback: {
|
||||
<C extends [better_call.Context<"/delete-user/callback", {
|
||||
method: "GET";
|
||||
query: zod.ZodObject<{
|
||||
token: zod.ZodString;
|
||||
}, "strip", zod.ZodTypeAny, {
|
||||
token: string;
|
||||
}, {
|
||||
token: string;
|
||||
}>;
|
||||
}>]>(...ctx: C): Promise<C extends [{
|
||||
asResponse: true;
|
||||
}] ? Response : {
|
||||
success: boolean;
|
||||
message: string;
|
||||
}>;
|
||||
path: "/delete-user/callback";
|
||||
options: {
|
||||
method: "GET";
|
||||
query: zod.ZodObject<{
|
||||
token: zod.ZodString;
|
||||
}, "strip", zod.ZodTypeAny, {
|
||||
token: string;
|
||||
}, {
|
||||
token: string;
|
||||
}>;
|
||||
};
|
||||
method: better_call.Method | better_call.Method[];
|
||||
headers: Headers;
|
||||
};
|
||||
};
|
||||
options: {
|
||||
appName: string;
|
||||
|
|
@ -9116,7 +9180,6 @@ declare const auth: {
|
|||
}): Promise<any>;
|
||||
options: better_auth_adapters_drizzle.DrizzleAdapterConfig;
|
||||
};
|
||||
baseUrl: string | undefined;
|
||||
basePath: string;
|
||||
trustedOrigins: string[];
|
||||
user: {
|
||||
|
|
@ -9126,25 +9189,32 @@ declare const auth: {
|
|||
};
|
||||
};
|
||||
};
|
||||
accounts: {
|
||||
account: {
|
||||
accountLinking: {
|
||||
enabled: boolean;
|
||||
trustedProviders: string[];
|
||||
enabled: true;
|
||||
trustedProviders: ("github" | "apple" | "google")[];
|
||||
};
|
||||
};
|
||||
socialProviders: {
|
||||
google: {
|
||||
clientId: string;
|
||||
clientSecret: string;
|
||||
redirectURI: string;
|
||||
};
|
||||
github: {
|
||||
clientId: string;
|
||||
clientSecret: string;
|
||||
redirectURI: string;
|
||||
};
|
||||
apple: {
|
||||
enabled: boolean;
|
||||
clientId: string;
|
||||
clientSecret: string;
|
||||
} | undefined;
|
||||
redirectURI: string;
|
||||
};
|
||||
};
|
||||
emailAndPassword: {
|
||||
enabled: true;
|
||||
};
|
||||
plugins: ({
|
||||
id: "custom-session";
|
||||
|
|
@ -9207,12 +9277,7 @@ declare const auth: {
|
|||
method: "GET";
|
||||
}> | undefined)?]>(...ctx: C): Promise<C extends [{
|
||||
asResponse: true;
|
||||
}] ? Response : {
|
||||
[k: string]: {
|
||||
id: string;
|
||||
name: string;
|
||||
};
|
||||
}>;
|
||||
}] ? Response : any>;
|
||||
path: "/get-providers";
|
||||
options: {
|
||||
method: "GET";
|
||||
|
|
@ -9241,6 +9306,23 @@ declare const auth: {
|
|||
headers: Headers;
|
||||
};
|
||||
};
|
||||
} | {
|
||||
id: "updateUserccc";
|
||||
endpoints: {
|
||||
updateUserccc: {
|
||||
<C extends [(better_call.Context<"/update-user-ccc", {
|
||||
method: "POST";
|
||||
}> | undefined)?]>(...ctx: C): Promise<C extends [{
|
||||
asResponse: true;
|
||||
}] ? Response : string | null>;
|
||||
path: "/update-user-ccc";
|
||||
options: {
|
||||
method: "POST";
|
||||
};
|
||||
method: better_call.Method | better_call.Method[];
|
||||
headers: Headers;
|
||||
};
|
||||
};
|
||||
})[];
|
||||
};
|
||||
$context: Promise<better_auth.AuthContext>;
|
||||
|
|
@ -9726,7 +9808,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -9735,7 +9817,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -9766,7 +9848,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -9775,7 +9857,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -9786,7 +9868,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -9928,7 +10010,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10022,7 +10104,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10181,7 +10263,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10190,7 +10272,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10284,7 +10366,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10293,7 +10375,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10429,7 +10511,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10438,7 +10520,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10514,7 +10596,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10523,7 +10605,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10649,7 +10731,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
data: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10674,7 +10756,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
[x: string]: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10840,7 +10922,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10849,7 +10931,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10862,7 +10944,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
boosters: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10899,7 +10981,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10908,7 +10990,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10919,7 +11001,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -10947,7 +11029,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11184,7 +11266,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
fromUser?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11193,7 +11275,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
toUser?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11213,7 +11295,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11222,7 +11304,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11340,7 +11422,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
user: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11395,7 +11477,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11404,7 +11486,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11415,7 +11497,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11476,7 +11558,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11485,7 +11567,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11496,7 +11578,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11573,7 +11655,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11582,7 +11664,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11593,7 +11675,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11635,7 +11717,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11644,7 +11726,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
tipUsers?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11748,7 +11830,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11882,7 +11964,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
owner?: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
@ -11993,7 +12075,7 @@ declare const _routes: hono_hono_base.HonoBase<Env, ({
|
|||
data: {
|
||||
name: string | null;
|
||||
id: string;
|
||||
emailVerified: string | null;
|
||||
emailVerified: boolean | null;
|
||||
image: string | null;
|
||||
handle: string | null;
|
||||
createdAt: string;
|
||||
|
|
|
|||
Loading…
Reference in New Issue