@roochnetwork/rooch-sdk-kit
Version:
Rooch SDK Kit
121 lines (109 loc) • 4.26 kB
JavaScript
// src/components/session-modal/session-list/SessionList.css.ts
var container = "SessionList_container__he8t610";
// src/components/session-modal/session-list/SessionListItem.tsx
import { clsx as clsx2 } from "clsx";
// src/components/ui/Heading.tsx
import { Slot } from "@radix-ui/react-slot";
import clsx from "clsx";
import { forwardRef } from "react";
// src/components/ui/Heading.css.ts
import { createRuntimeFn as _7a468 } from "@vanilla-extract/recipes/createRuntimeFn";
var headingVariants = _7a468({ defaultClassName: "Heading__1v58k1t0", variantClassNames: { size: { sm: "Heading_headingVariants_size_sm__1v58k1t1", md: "Heading_headingVariants_size_md__1v58k1t2", lg: "Heading_headingVariants_size_lg__1v58k1t3", xl: "Heading_headingVariants_size_xl__1v58k1t4" }, weight: { normal: "Heading_headingVariants_weight_normal__1v58k1t5", bold: "Heading_headingVariants_weight_bold__1v58k1t6" }, truncate: { true: "Heading_headingVariants_truncate_true__1v58k1t7" } }, defaultVariants: { size: "lg", weight: "bold" }, compoundVariants: [] });
// src/components/ui/Heading.tsx
import { jsx } from "react/jsx-runtime";
var Heading = forwardRef(
({
children,
className,
asChild = false,
as: Tag = "h1",
size,
weight,
truncate,
...headingProps
}, forwardedRef) => {
return /* @__PURE__ */ jsx(
Slot,
{
...headingProps,
ref: forwardedRef,
className: clsx(headingVariants({ size, weight, truncate }), className),
children: asChild ? children : /* @__PURE__ */ jsx(Tag, { children })
}
);
}
);
Heading.displayName = "Heading";
// src/components/session-modal/session-list/SessionListItem.css.ts
var container2 = "SessionListItem_container__128jgi30";
var selectedSessionItem = "SessionListItem_selectedSessionItem__128jgi32";
var sessionItem = "SessionListItem_sessionItem__128jgi31";
// src/components/session-modal/session-list/SessionListItem.tsx
import { toShortStr } from "@roochnetwork/rooch-sdk";
import { jsx as jsx2 } from "react/jsx-runtime";
function SessionListItem({ authKey, onClick, isSelected = false }) {
return /* @__PURE__ */ jsx2("li", { className: container2, children: /* @__PURE__ */ jsx2(
"button",
{
className: clsx2(sessionItem, { [selectedSessionItem]: isSelected }),
type: "button",
onClick,
children: /* @__PURE__ */ jsx2(Heading, { size: "md", truncate: true, asChild: true, children: /* @__PURE__ */ jsx2("div", { children: toShortStr(authKey, {
start: 12,
end: 6
}) }) })
}
) });
}
// src/hooks/useSessionsStore.ts
import { useContext } from "react";
import { useStore } from "zustand";
// src/provider/roochProvider.tsx
import { createContext, useRef } from "react";
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
var RoochContext = createContext(null);
// src/hooks/useSessionsStore.ts
function useSessionStore(selector) {
const store = useContext(RoochContext);
if (!store) {
throw new Error(
"Could not find RoochSessionContext. Ensure that you have set up the RoochClientProvider."
);
}
return useStore(store, selector);
}
// src/hooks/useSessions.ts
function useSessions() {
return useSessionStore(
(state) => state.sessions.sort((a, b) => b.getCreateTime() - a.getCreateTime())
);
}
// src/components/session-modal/session-list/SessionList.tsx
import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
function SessionList({ selectedSessionAuthKey, onSelect }) {
const sessions = useSessions();
return /* @__PURE__ */ jsxs2("ul", { className: container, children: [
/* @__PURE__ */ jsx4(
SessionListItem,
{
authKey: selectedSessionAuthKey?.startsWith("0x") ? "What is a session" : selectedSessionAuthKey || "",
isSelected: !selectedSessionAuthKey?.startsWith("0x"),
onClick: () => onSelect()
},
"new"
),
sessions.map((session) => /* @__PURE__ */ jsx4(
SessionListItem,
{
authKey: session.getAuthKey(),
isSelected: session.getAuthKey() === selectedSessionAuthKey,
onClick: () => onSelect(session)
},
session.getAuthKey()
))
] });
}
export {
SessionList
};
//# sourceMappingURL=SessionList.js.map