ItemSelectionProvider: promote toot expansion

state

* used in Profile, TrendTimelinePanel,
  TimelinePanel
This commit is contained in:
thislight 2024-11-25 20:08:03 +08:00
parent dafc2c47a8
commit 9499182a8d
No known key found for this signature in database
GPG key ID: FCFE5192241CCD4E
5 changed files with 120 additions and 68 deletions

View file

@ -58,6 +58,10 @@ import Menu, { createManagedMenuState } from "~material/Menu";
import { share } from "~platform/share";
import "./Profile.css";
import { useNavigator } from "~platform/StackedRouter";
import {
createSingluarItemSelection,
default as ItemSelectionProvider,
} from "../timelines/toots/ItemSelectionProvider";
const Profile: Component = () => {
const { pop } = useNavigator();
@ -70,6 +74,7 @@ const Profile: Component = () => {
}>();
const windowSize = useWindowSize();
const time = createTimeSource();
const [, selectionState] = createSingluarItemSelection();
const menuButId = createUniqueId();
const recentTootListId = createUniqueId();
@ -499,22 +504,26 @@ const Profile: Component = () => {
></TootFilterButton>
</div>
<TimeSourceProvider value={time}>
<Show when={recentTootFilter().pinned && pinnedToots.list.length > 0}>
<ItemSelectionProvider value={selectionState}>
<TimeSourceProvider value={time}>
<Show
when={recentTootFilter().pinned && pinnedToots.list.length > 0}
>
<TootList
threads={pinnedToots.list}
onUnknownThread={pinnedToots.getPath}
onChangeToot={pinnedToots.set}
/>
<Divider />
</Show>
<TootList
threads={pinnedToots.list}
onUnknownThread={pinnedToots.getPath}
onChangeToot={pinnedToots.set}
id={recentTootListId}
threads={recentToots.list}
onUnknownThread={recentToots.getPath}
onChangeToot={recentToots.set}
/>
<Divider />
</Show>
<TootList
id={recentTootListId}
threads={recentToots.list}
onUnknownThread={recentToots.getPath}
onChangeToot={recentToots.set}
/>
</TimeSourceProvider>
</TimeSourceProvider>
</ItemSelectionProvider>
<Show when={!recentTootChunk()?.done}>
<div