1import { useCallback, useEffect, useState } from 'react';
2import { Box, Row } from '@tlon/indigo-react';
3import { Ship } from '@urbit/roller-api';
5import { useRollerStore } from 'store/rollerStore';
6import useRoller from 'lib/useRoller';
7import { useLocalRouter } from 'lib/LocalRouter';
9import Window from 'components/L2/Window/Window';
10import HeaderPane from 'components/L2/Window/HeaderPane';
11import BodyPane from 'components/L2/Window/BodyPane';
12import View from 'components/View';
13import L2BackHeader from 'components/L2/Headers/L2BackHeader';
15import { RequestRow } from './RequestRow';
16import './Requests.scss';
18export const Requests = () => {
19 const { pop }: any = useLocalRouter();
20 const { point, setLoading } = useRollerStore();
21 const { api, changeSponsorship } = useRoller();
22 const [requestingPoints, setRequestingPoints] = useState<Ship[]>([]);
24 const fetchRequests = useCallback(async () => {
30 const { requests } = await api.getSponsoredPoints(point.value);
31 setRequestingPoints((requests || []).sort());
33 }, [api, point, setLoading]);
35 const handleAcceptClick = useCallback(
36 async (ship: Ship) => {
38 await changeSponsorship(ship, 'adopt', point.isL1);
39 await fetchRequests();
42 [changeSponsorship, fetchRequests, point.isL1, setLoading]
45 const handleRejectClick = useCallback(
46 async (ship: Ship) => {
48 await changeSponsorship(ship, 'reject', point.isL1);
49 await fetchRequests();
52 [changeSponsorship, fetchRequests, point.isL1, setLoading]
61 className="ops-requests"
65 header={<L2BackHeader hideBalance back={pop} />}>
68 <Row className="header-row">
71 <span className="header-count">{requestingPoints.length}</span>
76 <Box className="content-container">
77 {requestingPoints.length > 0 ? (
78 <ul className="requests-list">
79 {requestingPoints.map(sp => (
83 onAccept={handleAcceptClick}
84 onReject={handleRejectClick}
89 <Box className="no-results">No requests</Box>
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list