LinkWindow: update for new scroll virtualisation

This commit is contained in:
Liam Fitzgerald 2021-02-25 12:02:09 +10:00
parent f669dc48be
commit a960234e2c
No known key found for this signature in database
GPG Key ID: D390E12C61D1CFFB
2 changed files with 1 additions and 22 deletions

View File

@ -33,20 +33,12 @@ interface LinkWindowProps {
}
export function LinkWindow(props: LinkWindowProps) {
const { graph, api, association } = props;
const virtualList = useRef<VirtualScroller>();
const fetchLinks = useCallback(
async (newer: boolean) => {
/* stubbed, should we generalize the display of graphs in virtualscroller? */
}, []
);
useEffect(() => {
const list = virtualList?.current;
if(!list)
return;
list.calculateVisibleItems();
}, [graph.size]);
const first = graph.peekLargest()?.[0];
const [,,ship, name] = association.resource.split('/');
const canWrite = isWriter(props.group, association.resource);
@ -75,14 +67,13 @@ return;
return (
<VirtualScroller
ref={l => (virtualList.current = l ?? undefined)}
origin="top"
style={style}
onStartReached={() => {}}
onScroll={() => {}}
data={graph}
size={graph.size}
renderer={({ index, measure, scrollWindow }) => {
renderer={({ index, scrollWindow }) => {
const node = graph.get(index);
const post = node?.post;
if (!node || !post)
@ -90,7 +81,6 @@ return null;
const linkProps = {
...props,
node,
measure
};
if(canWrite && index.eq(first ?? bigInt.zero)) {
return (

View File

@ -19,7 +19,6 @@ interface LinkItemProps {
path: string;
contacts: Rolodex;
unreads: Unreads;
measure: (el: any) => void;
}
export const LinkItem = (props: LinkItemProps): ReactElement => {
@ -30,7 +29,6 @@ export const LinkItem = (props: LinkItemProps): ReactElement => {
group,
path,
contacts,
measure,
...rest
} = props;
@ -93,14 +91,6 @@ export const LinkItem = (props: LinkItemProps): ReactElement => {
const commColor = (props.unreads.graph?.[appPath]?.[`/${index}`]?.unreads ?? 0) > 0 ? 'blue' : 'gray';
const isUnread = props.unreads.graph?.[appPath]?.['/']?.unreads?.has(node.post.index);
const onMeasure = useCallback(() => {
ref.current && measure(ref.current);
}, [ref.current, measure]);
useEffect(() => {
onMeasure();
}, [onMeasure]);
return (
<Box mx="auto" px={3} maxWidth="768px" ref={ref} width="100%" {...rest}>
<Box
@ -123,7 +113,6 @@ export const LinkItem = (props: LinkItemProps): ReactElement => {
url={contents[1].url}
text={contents[0].text}
unfold={true}
onLoad={onMeasure}
style={{ alignSelf: 'center' }}
oembedProps={{
p: 2,