diff --git a/apps/web/src/components/list-item/index.js b/apps/web/src/components/list-item/index.js index 050e6c1c0..3cd793776 100644 --- a/apps/web/src/components/list-item/index.js +++ b/apps/web/src/components/list-item/index.js @@ -52,8 +52,6 @@ const ItemSelector = ({ isSelected, toggleSelection }) => { }; const ListItem = props => { - //const selectedNote = useStore(store => store.selectedNote); - // const isOpened = selectedNote === props.id; const [parentRef, closeContextMenu] = useContextMenu( `contextMenu${props.index}` ); @@ -90,7 +88,11 @@ const ListItem = props => { alignItems="center" sx={{ borderBottom: "1px solid", - borderBottomColor: "navbg" + borderBottomColor: "border", + cursor: "pointer", + ":hover": { + borderBottomColor: "primary" + } }} > {isSelectionMode && ( @@ -109,12 +111,8 @@ const ListItem = props => { position: "relative", marginTop: props.pinned ? 4 : 0, paddingTop: props.pinned ? 0 : 2, - paddingBottom: 2, - cursor: "default", - ":hover": { - borderBottomColor: "primary", - cursor: "pointer" - } + paddingBottom: 2 + //TODO add onpressed reaction }} > @@ -161,11 +159,14 @@ const ListItem = props => { } }} > - - - {props.title} - - + + {props.title} + [ } ]; -export default class Note extends React.Component { - shouldComponentUpdate(nextProps) { - const prevItem = this.props.item; - const nextItem = nextProps.item; - return ( - prevItem.pinned !== nextItem.pinned || - prevItem.favorite !== nextItem.favorite || - prevItem.headline !== nextItem.headline || - prevItem.title !== nextItem.title - ); - } - - render() { - const { item, index, groupIndex } = this.props; - const note = item; - return ( - { - await editorStore.getState().openSession(note); - }} - info={ - - - {note.locked && } - {note.favorite && } - - } - pinned={note.pinned} - menuData={note} - menuItems={menuItems(note, index, groupIndex)} - dropdownRefs={dropdownRefs} - /> - ); - } +function Note(props) { + const { item, index, groupIndex } = props; + const note = item; + const selectedNote = useStore(store => store.selectedNote); + const isOpened = selectedNote === note.id; + return ( + { + await editorStore.getState().openSession(note); + }} + info={ + + + {note.locked && } + {note.favorite && } + + } + pinned={note.pinned} + menuData={note} + menuItems={menuItems(note, index, groupIndex)} + dropdownRefs={dropdownRefs} + /> + ); } + +export default React.memo(Note, function(prevProps, nextProps) { + const prevItem = prevProps.item; + const nextItem = nextProps.item; + return ( + prevItem.pinned === nextItem.pinned && + prevItem.favorite === nextItem.favorite && + prevItem.headline === nextItem.headline && + prevItem.title === nextItem.title + ); +});