From 6ff22d37d29a0e92167c368f6d2a68a95e653b8e Mon Sep 17 00:00:00 2001 From: s-ol Date: Fri, 12 Feb 2021 12:59:17 +0100 Subject: selection bar, permalinks, avatar links --- src/ui/Selection.js | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/ui/Selection.js (limited to 'src/ui/Selection.js') diff --git a/src/ui/Selection.js b/src/ui/Selection.js new file mode 100644 index 0000000..d6e62ab --- /dev/null +++ b/src/ui/Selection.js @@ -0,0 +1,90 @@ +import { h } from 'preact'; +import { useState, useEffect } from 'preact/hooks'; +import cn from 'classnames'; +import css from './css'; +import { Note } from './Note'; + +css` +.drawer { + background: var(--theme-note-fg); + + flex: 0 0 auto; + + /* wtf webkit */ + -webkit-backface-visibility: hidden; +} + +.drawer .handle { + height: 2rem; + margin-bottom: 1rem; +} + +.drawer .handle button { + display: block; + + height: 2rem; + line-height: 2rem; + margin: -1rem auto 0; + padding: 0.25rem; + background: var(--theme-note-bg); + border-radius: 0.4rem; +} + +.drawer .scroller { + display: flex; + overflow: auto; + width: 100%; + + transition: max-height 0.3s; +} + +.drawer .contents { + display: flex; + + align-items: flex-start; + + gap: 1rem; + padding: 0 2rem; +} + +.drawer .contents > * { + flex: 0 0 auto; +} +`; + +export const Drawer = ({ height, children }) => { + const [ hidden, setHidden ] = useState(true); + + return ( +
+
+ +
+ +
+ ); +}; + +export const Selection = ({ items, toggleSelected }) => ( + + {items.map((item) => ( + + ))} + +); -- cgit v1.2.3