sodesu-comment
Version:
Comment system with SolidJS
91 lines (90 loc) • 2.5 kB
TypeScript
import { WalineComment, WalineCommentStatus } from '@waline/api';
import { WalineCommentSorting } from '@waline/client';
import { Accessor, Setter } from 'solid-js';
export declare const sortingMethods: WalineCommentSorting[];
interface ReactiveCommentData {
/**
* User Nickname
*/
nick: string;
/**
* User link
*/
link?: string;
/**
* Content of comment
*/
comment: Accessor<string>;
/**
* Parent comment id
*/
pid?: number;
/**
* Root comment id
*/
rid?: number;
/**
* User id being at
*/
at?: string;
/**
* Recaptcha Token
*/
recaptchaV3?: string;
/**
* Reply user information
*/
reply_user?: {
nick: string;
link: string;
avatar: string;
};
}
export interface ReactiveComment extends Exclude<ReactiveCommentData, 'ua'> {
avatar: string;
/**
* User type
*/
type?: 'administrator' | 'guest' | `verify:${string}`;
objectId: number;
/**
* Time ISOString when the comment is created
*/
children: Accessor<ReactiveComment[]>;
sticky?: boolean;
browser?: string;
os?: string;
level?: number;
addr?: string;
label?: string;
time: number;
user_id?: string | number;
status?: WalineCommentStatus;
like: Accessor<number>;
orig: Accessor<string | undefined>;
setLike: Setter<number>;
setChildren: Setter<ReactiveComment[]>;
setComment: Setter<string>;
setOrig: Setter<string>;
}
export declare function makeDataReactive(data: WalineComment): ReactiveComment;
export declare function makeDatasReactive(datas: WalineComment[]): ReactiveComment[];
declare const commentListState: {
status: Accessor<"error" | "loading" | "success">;
sorting: Accessor<import('../waline/typings').WalineCommentSorting>;
page: Accessor<number>;
count: Accessor<number>;
data: Accessor<ReactiveComment[]>;
totalPages: Accessor<number>;
setStatus: Setter<"error" | "loading" | "success">;
setSorting: Setter<import('../waline/typings').WalineCommentSorting>;
setPage: Setter<number>;
setCount: Setter<number>;
setData: Setter<ReactiveComment[]>;
setTotalPages: Setter<number>;
};
export declare function getCommentData(page: number): void;
export declare function loadMore(): void;
export declare function refresh(): void;
export declare function deleteComment(id: number): void;
export default commentListState;