{"version":3,"file":"index-CkrAaq14.js","sources":["../../../../../node_modules/.pnpm/@solid-primitives+utils@6.2.3_solid-js@1.8.15/node_modules/@solid-primitives/utils/dist/chunk/R5675YMU.js","../../../../../src/routes/(root)/index.tsx?pick=default&pick=$css"],"sourcesContent":["import { DEV, equalFn, untrack, getOwner, onCleanup, createSignal, sharedConfig, onMount } from 'solid-js';\nimport { isServer } from 'solid-js/web';\nexport { isServer } from 'solid-js/web';\n\n// src/index.ts\nvar isClient = !isServer;\nvar isDev = isClient && !!DEV;\nvar isProd = !isDev;\nvar noop = () => void 0;\nvar trueFn = () => true;\nvar falseFn = () => false;\nvar defaultEquals = equalFn;\nvar EQUALS_FALSE_OPTIONS = { equals: false };\nvar INTERNAL_OPTIONS = { internal: true };\nvar ofClass = (v, c) => v instanceof c || v && v.constructor === c;\nfunction isObject(value) {\n return value !== null && (typeof value === \"object\" || typeof value === \"function\");\n}\nvar isNonNullable = (i) => i != null;\nvar filterNonNullable = (arr) => arr.filter(isNonNullable);\nvar compare = (a, b) => a < b ? -1 : a > b ? 1 : 0;\nvar arrayEquals = (a, b) => a === b || a.length === b.length && a.every((e, i) => e === b[i]);\nfunction chain(callbacks) {\n return (...args) => {\n for (const callback of callbacks)\n callback && callback(...args);\n };\n}\nfunction reverseChain(callbacks) {\n return (...args) => {\n for (let i = callbacks.length - 1; i >= 0; i--) {\n const callback = callbacks[i];\n callback && callback(...args);\n }\n };\n}\nvar clamp = (n, min, max) => Math.min(Math.max(n, min), max);\nvar access = (v) => typeof v === \"function\" && !v.length ? v() : v;\nvar asArray = (value) => Array.isArray(value) ? value : value ? [value] : [];\nvar accessArray = (list) => list.map((v) => access(v));\nvar withAccess = (value, fn) => {\n const _value = access(value);\n typeof _value != null && fn(_value);\n};\nvar asAccessor = (v) => typeof v === \"function\" ? v : () => v;\nfunction accessWith(valueOrFn, ...args) {\n return typeof valueOrFn === \"function\" ? valueOrFn(...args) : valueOrFn;\n}\nfunction defer(deps, fn, initialValue) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let shouldDefer = true;\n return (prevValue) => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++)\n input[i] = deps[i]();\n } else\n input = deps();\n if (shouldDefer) {\n shouldDefer = false;\n prevInput = input;\n return initialValue;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\nvar entries = Object.entries;\nvar keys = Object.keys;\nvar tryOnCleanup = isDev ? (fn) => getOwner() ? onCleanup(fn) : fn : onCleanup;\nvar createCallbackStack = () => {\n let stack = [];\n const clear = () => stack = [];\n return {\n push: (...callbacks) => stack.push(...callbacks),\n execute(arg0, arg1, arg2, arg3) {\n stack.forEach((cb) => cb(arg0, arg1, arg2, arg3));\n clear();\n },\n clear\n };\n};\nfunction createMicrotask(fn) {\n let calls = 0;\n let args;\n onCleanup(() => calls = 0);\n return (...a) => {\n args = a, calls++;\n queueMicrotask(() => --calls === 0 && fn(...args));\n };\n}\nfunction createHydratableSignal(serverValue, update, options) {\n if (isServer) {\n return createSignal(serverValue, options);\n }\n if (sharedConfig.context) {\n const [state, setState] = createSignal(serverValue, options);\n onMount(() => setState(() => update()));\n return [state, setState];\n }\n return createSignal(update(), options);\n}\nvar createHydrateSignal = createHydratableSignal;\nfunction handleDiffArray(current, prev, handleAdded, handleRemoved) {\n const currLength = current.length;\n const prevLength = prev.length;\n let i = 0;\n if (!prevLength) {\n for (; i < currLength; i++)\n handleAdded(current[i]);\n return;\n }\n if (!currLength) {\n for (; i < prevLength; i++)\n handleRemoved(prev[i]);\n return;\n }\n for (; i < prevLength; i++) {\n if (prev[i] !== current[i])\n break;\n }\n let prevEl;\n let currEl;\n prev = prev.slice(i);\n current = current.slice(i);\n for (prevEl of prev) {\n if (!current.includes(prevEl))\n handleRemoved(prevEl);\n }\n for (currEl of current) {\n if (!prev.includes(currEl))\n handleAdded(currEl);\n }\n}\n\nexport { EQUALS_FALSE_OPTIONS, INTERNAL_OPTIONS, access, accessArray, accessWith, arrayEquals, asAccessor, asArray, chain, clamp, compare, createCallbackStack, createHydratableSignal, createHydrateSignal, createMicrotask, defaultEquals, defer, entries, falseFn, filterNonNullable, handleDiffArray, isClient, isDev, isNonNullable, isObject, isProd, keys, noop, ofClass, reverseChain, trueFn, tryOnCleanup, withAccess };\n","import { For, Show, JSX, Suspense, createSignal, onCleanup } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport { A, cache, createAsync, type RouteDefinition } from \"@solidjs/router\";\nimport { tryOnCleanup } from \"@solid-primitives/utils\";\nimport { Title } from \"@solidjs/meta\";\nimport ImplyHead from \"~/components/ImplyHead\";\nimport { Spinner } from \"~/components/icons\";\nimport { useAppState } from \"~/AppContext\";\nimport { getRedis } from \"~/lib/server\";\nimport { DATA_STORE, HOME_LIST_ID } from \"~/lib/const\";\n\nconst size = 20;\nconst homeData = async (before: string) => {\n \"use server\";\n const rc = await getRedis();\n const list = await rc.zRangeByScore(HOME_LIST_ID, before, 0, {\n LIMIT: { offset: 0, count: size },\n });\n // await new Promise((res) => setTimeout(res, 500)); // test scrolling\n if (list.length == 0) return undefined;\n const bytesList = await rc.hmGet(DATA_STORE, list);\n const data = bytesList.map((s) => JSON.parse(s));\n return data;\n};\n\nconst homeImpliesCache = cache(homeData, \"home#Implies\");\n\nexport const route = {\n load: () => {\n homeImpliesCache(\"-inf\");\n // getUserCache();\n },\n} satisfies RouteDefinition;\n\nconst showMore: JSX.EventHandler = (e) => {\n e.currentTarget.classList.remove(\"max-h-80\");\n e.currentTarget.classList.remove(\"overflow-hidden\");\n};\n\nconst tellMore: JSX.EventHandler = (e) => {\n const prt = e.currentTarget.parentElement;\n if (prt) {\n prt.classList.remove(\"max-h-80\", \"overflow-hidden\");\n }\n e.currentTarget.classList.remove(\n \"hover:prose-headings:text-gray-400\",\n \"hover:text-gray-400\",\n \"cursor-pointer\"\n );\n};\n\nexport default function Home() {\n const { t } = useAppState();\n const [items, setItems] = createSignal([\"-inf\"]);\n\n return (\n
\n {t(\"app.title\")}\n\n
\n \n {(v, idx) => (\n idx() === items().length - 1}\n before={v}\n setBefore={(v) => setItems((p) => [...p, v])}\n />\n )}\n \n
\n {/* \n \n */}\n
\n );\n}\n\nfunction ListGroup({\n before,\n setBefore,\n isLast = () => false,\n}: {\n isLast?: () => boolean;\n before: string;\n setBefore: (v: string) => void;\n}) {\n const data = createAsync(() => homeImpliesCache(before), {\n deferStream: true,\n });\n const loadMore = () => {\n const _items = data();\n if (!_items) return;\n const item = _items[_items.length - 1];\n if (!item) return;\n setBefore(`(-${item.createdAt}`);\n };\n let infiniteScrollLoader: (el: HTMLHeadingElement) => void;\n if (!isServer) {\n const io = new IntersectionObserver((e) => {\n if (e.length > 0 && e[0]!.isIntersecting && isLast()) {\n loadMore();\n }\n });\n onCleanup(() => io.disconnect());\n infiniteScrollLoader = (el: HTMLHeadingElement) => {\n io.observe(el);\n tryOnCleanup(() => io.unobserve(el));\n };\n }\n\n return (\n \n \n \n }\n >\n \n {(imply, idx) => (\n \n \n \n \n \n \n )}\n \n \n \n

\n
\n
\n \n );\n}\n"],"names":["tryOnCleanup","onCleanup","homeImpliesCache","$$function0","showMore","cache","homeData","currentTarget","classList","remove","tellMore","e","parentElement","prt","Home","t","useAppState","setItems","items","createSignal","_el$","_$getNextElement","_tmpl$","_el$3","firstChild","_el$4","_co$","_$getNextMarker","nextSibling","_el$2","_$createComponent","v","each","children","idx","ListGroup","isLast","length","before","setBefore","p","data","deferStream","createAsync","loadMore","item","_items","createdAt","infiniteScrollLoader","IntersectionObserver","isIntersecting","io","el","observe","unobserve","Suspense","fallback","_el$6","_tmpl$3","Spinner","size","For","imply","_el$7","_tmpl$4","_el$9","_el$10","_co$2","_el$8","$$click","href","ImplyHead","_$effect","_$setProperty","inference","_$runHydrationEvents","Show","when","_ref$","_$use","_el$5"],"mappings":"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","x_google_ignoreList":[0]}