import "../chunks/DKem_M_z.js"; import "../chunks/DwLkIEu4.js"; import { p as push, i as getContext, l as legacy_pre_effect, n as legacy_pre_effect_reset, g as comment, h as first_child, a as append, b as pop, s as setup_stores, k as get, C as deferred_template_effect, q as mutable_source, e as store_get, w as set, A as tick, u as untrack, $ as $document, aV as mutate, c as child, r as reset, z as sibling, t as template_effect, m as deep_read_state, d as set_text, y as event, f as from_html, x as derived_safe_equal } from "../chunks/B-Kw_l3V.js"; import { i as if_block } from "../chunks/DWHK2A9K.js"; import { h as head } from "../chunks/BmxCyGHt.js"; import { a as set_class, s as set_attribute } from "../chunks/B9yCN616.js"; import { i as init } from "../chunks/CUpGYt-B.js"; import { g as goto } from "../chunks/BLfIdBii.js"; import { p as page } from "../chunks/4ha_GQi5.js"; import { d as dayjs2 } from "../chunks/BeGenu0j.js"; import { s as settings, m as models, g as chatId, R as REXPRO_NAME, c as config } from "../chunks/BJ3rUC-5.js"; import { h as createMessagesList, i as convertMessagesToHistory } from "../chunks/X0cYWxFO.js"; import { g as getChatByShareId, c as cloneSharedChatById } from "../chunks/DwAGGfMc.js"; import { M as Messages } from "../chunks/BGz6MCVJ.js"; import { a as getUserSettings, g as getUserInfoById } from "../chunks/CP40r8ux.js"; import { g as getModels } from "../chunks/CwXWgxvI.js"; import { t as toast } from "../chunks/B4Bn1xMI.js"; import { l as localizedFormat } from "../chunks/Ce8_hHpJ.js"; var root = from_html(`

`); function _page($$anchor, $$props) { push($$props, false); const $page = () => store_get(page, "$page", $$stores); const $config = () => store_get(config, "$config", $$stores); const $settings = () => store_get(settings, "$settings", $$stores); const $chatId = () => store_get(chatId, "$chatId", $$stores); const $REXPRO_NAME = () => store_get(REXPRO_NAME, "$REXPRO_NAME", $$stores); const $i18n = () => store_get(i18n, "$i18n", $$stores); const [$$stores, $$cleanup] = setup_stores(); const i18n = getContext("i18n"); dayjs2.extend(localizedFormat); let loaded = mutable_source(false); let autoScroll = mutable_source(true); let processing = ""; let selectedModels = mutable_source([""]); let chat = mutable_source(null); let user = mutable_source(null); let title = mutable_source(""); let files = []; let messages = mutable_source([]); let history = mutable_source({ messages: {}, currentId: null }); const loadSharedChat = async () => { var _a, _b, _c, _d, _e, _f; const userSettings = await getUserSettings(localStorage.token).catch((error) => { /* @__PURE__ */ console.error(error); return null; }); if (userSettings) { settings.set(userSettings.ui); } else { let localStorageSettings = {}; try { localStorageSettings = JSON.parse(localStorage.getItem("settings") ?? "{}"); } catch (e) { /* @__PURE__ */ console.error("Failed to parse settings from localStorage", e); } settings.set(localStorageSettings); } await models.set(await getModels(localStorage.token, ((_b = (_a = $config()) == null ? void 0 : _a.features) == null ? void 0 : _b.enable_direct_connections) && (((_c = $settings()) == null ? void 0 : _c.directConnections) ?? null))); await chatId.set($page().params.id); set(chat, await getChatByShareId(localStorage.token, $chatId()).catch(async (error) => { await goto("/"); return null; })); if (get(chat)) { set(user, await getUserInfoById(localStorage.token, get(chat).user_id).catch((error) => { /* @__PURE__ */ console.error(error); return null; })); const chatContent = get(chat).chat; if (chatContent) { /* @__PURE__ */ console.log(chatContent); set(selectedModels, ((chatContent == null ? void 0 : chatContent.models) ?? void 0) !== void 0 ? chatContent.models : [chatContent.models ?? ""]); set(history, ((chatContent == null ? void 0 : chatContent.history) ?? void 0) !== void 0 ? chatContent.history : convertMessagesToHistory(chatContent.messages)); set(title, chatContent.title); set(autoScroll, true); await tick(); if (get(messages).length > 0 && ((_d = get(messages).at(-1)) == null ? void 0 : _d.id) && ((_e = get(messages).at(-1)) == null ? void 0 : _e.id) in get(history).messages) { mutate(history, get(history).messages[(_f = get(messages).at(-1)) == null ? void 0 : _f.id].done = true); } await tick(); return true; } else { return null; } } }; const cloneSharedChat = async () => { if (!get(chat)) return; const res = await cloneSharedChatById(localStorage.token, get(chat).id).catch((error) => { toast.error(`${error}`); return null; }); if (res) { goto(`/c/${res.id}`); } }; legacy_pre_effect(() => get(history), () => { set(messages, createMessagesList(get(history), get(history).currentId)); }); legacy_pre_effect(() => ($page(), goto), () => { if ($page().params.id) { (async () => { if (await loadSharedChat()) { await tick(); set(loaded, true); } else { await goto("/"); } })(); } }); legacy_pre_effect_reset(); init(); var fragment = comment(); head("hrl0ku", ($$anchor2) => { deferred_template_effect( ($0) => { $document.title = ` ${$0 ?? ""} `; }, [ () => (get(title), $REXPRO_NAME(), untrack(() => get(title) ? `${get(title).length > 30 ? `${get(title).slice(0, 30)}...` : get(title)} • ${$REXPRO_NAME()}` : `${$REXPRO_NAME()}`)) ] ); }); var node = first_child(fragment); { var consequent = ($$anchor2) => { var div = root(); var div_1 = child(div); var div_2 = child(div_1); var div_3 = child(div_2); var div_4 = child(div_3); var h1 = child(div_4); var text = child(h1, true); reset(h1); var div_5 = sibling(h1, 2); var time = child(div_5); var text_1 = child(time, true); reset(time); reset(div_5); reset(div_4); reset(div_3); var div_6 = sibling(div_3, 2); var div_7 = child(div_6); var node_1 = child(div_7); { let $0 = derived_safe_equal(() => untrack(() => files.length > 0)); Messages(node_1, { className: "h-full flex pt-4 pb-8 ", get user() { return get(user); }, get chatId() { return $chatId(); }, readOnly: true, get selectedModels() { return get(selectedModels); }, processing, get bottomPadding() { return get($0); }, sendMessage: () => { }, continueResponse: () => { }, regenerateResponse: () => { }, get history() { return get(history); }, set history($$value) { set(history, $$value); }, get messages() { return get(messages); }, set messages($$value) { set(messages, $$value); }, get autoScroll() { return get(autoScroll); }, set autoScroll($$value) { set(autoScroll, $$value); }, $$legacy: true }); } reset(div_7); reset(div_6); reset(div_2); var div_8 = sibling(div_2, 2); var div_9 = child(div_8); var button = child(div_9); var text_2 = child(button, true); reset(button); reset(div_9); reset(div_8); reset(div_1); reset(div); template_effect( ($0, $1, $2) => { set_class(div_3, 1, `pt-5 px-2 w-full ${($settings(), untrack(() => { var _a; return ((_a = $settings()) == null ? void 0 : _a.widescreenMode) ?? null ? "max-w-full" : "max-w-5xl"; })) ?? ""} mx-auto`); set_text(text, get(title)); set_attribute(time, "datetime", $0); set_text(text_1, $1); set_text(text_2, $2); }, [ () => (get(chat), untrack(() => { var _a, _b; return new Date(((_b = (_a = get(chat)) == null ? void 0 : _a.chat) == null ? void 0 : _b.timestamp) || Date.now()).toISOString(); })), () => (deep_read_state(dayjs2), get(chat), untrack(() => dayjs2(get(chat).chat.timestamp).format("LLL"))), () => ($i18n(), untrack(() => $i18n().t("Clone Chat"))) ] ); event("click", button, cloneSharedChat); append($$anchor2, div); }; if_block(node, ($$render) => { if (get(loaded)) $$render(consequent); }); } append($$anchor, fragment); pop(); $$cleanup(); } export { _page as component };