* tidy * Add title to HTML export * fix: Add compatability for documents without collab state * Add HTML download option to UI * docs * fix nodes that required document to render * Refactor to allow for styling of HTML export * div>article for easier programatic content extraction * Allow DocumentHelper to be used with Revisions * Add revisions.diff endpoint, first version * Allow arbitrary revisions to be compared * test * HTML driven revision viewer * fix: Dark mode styles for document diffs * Add revision restore button to header * test * Support RTL languages in revision history viewer * fix: RTL support Remove unneccessary API requests * Prefetch revision data * Animate history sidebar * fix: Cannot toggle history from timestamp fix: Animation on each revision click * Clarify currently editing history item
53 lines
1.2 KiB
TypeScript
53 lines
1.2 KiB
TypeScript
import * as React from "react";
|
|
import styled from "styled-components";
|
|
import Document from "~/models/Document";
|
|
import Event from "~/models/Event";
|
|
import PaginatedList from "~/components/PaginatedList";
|
|
import EventListItem from "./EventListItem";
|
|
|
|
type Props = {
|
|
events: Event[];
|
|
document: Document;
|
|
fetch: (options: Record<string, any> | undefined) => Promise<Event[]>;
|
|
options?: Record<string, any>;
|
|
heading?: React.ReactNode;
|
|
empty?: React.ReactNode;
|
|
};
|
|
const PaginatedEventList = React.memo<Props>(function PaginatedEventList({
|
|
empty,
|
|
heading,
|
|
events,
|
|
fetch,
|
|
options,
|
|
document,
|
|
...rest
|
|
}: Props) {
|
|
return (
|
|
<PaginatedList
|
|
items={events}
|
|
empty={empty}
|
|
heading={heading}
|
|
fetch={fetch}
|
|
options={options}
|
|
renderItem={(item: Event, index, compositeProps) => (
|
|
<EventListItem
|
|
key={item.id}
|
|
event={item}
|
|
document={document}
|
|
latest={index === 0}
|
|
{...compositeProps}
|
|
/>
|
|
)}
|
|
renderHeading={(name) => <Heading>{name}</Heading>}
|
|
{...rest}
|
|
/>
|
|
);
|
|
});
|
|
|
|
const Heading = styled("h3")`
|
|
font-size: 14px;
|
|
padding: 0 12px;
|
|
`;
|
|
|
|
export default PaginatedEventList;
|