import React, { useState, useEffect, useCallback } from 'react';
import { Grid, H4 } from 'indigo-react';
import { Nothing } from 'folktale/maybe';
import * as ob from 'urbit-ob';
import View from 'components/View';
import Tabs from 'components/Tabs';
import Crumbs from 'components/Crumbs';
import Sigil from 'components/Sigil';
import { useLocalRouter } from 'lib/LocalRouter';
import useCurrentPointName from 'lib/useCurrentPointName';
import { useResidents } from 'lib/useResidents';
import * as need from 'lib/need';
import { usePointCursor } from 'store/pointCursor';
const NAMES = {
REQUESTS: 'REQUESTS',
ALL: 'ALL',
};
const OPTIONS = [
{ text: 'Requests', value: NAMES.REQUESTS },
{ text: 'All', value: NAMES.ALL },
];
const VIEWS = {
[NAMES.REQUESTS]: Requests,
[NAMES.ALL]: AllResidents,
};
function Requests({ className }) {
const onThing = () => {};
const { pointCursor } = usePointCursor();
const point = need.point(pointCursor);
const { requests, syncRequests } = useResidents(point);
useEffect(() => {
syncRequests();
}, [syncRequests]);
if (Nothing.hasInstance(requests)) {
return (
Loading...
);
}
const _requests = requests.getOrElse([]);
return (
{_requests.map(point => (
))}
);
}
function Resident({ point, onAccept, onDecline }) {
const patp = ob.patp(point);
const sigilSize = 50;
const isRequest = onAccept && onDecline;
return (
<>
{patp}{' '}
{isRequest && (
<>
Accept
Decline
>
)}
>
);
}
function AllResidents({ className }) {
const { pointCursor } = usePointCursor();
const point = need.point(pointCursor);
const { syncResidents, residents } = useResidents(point);
useEffect(() => {
syncResidents();
}, [syncResidents]);
if (Nothing.hasInstance(residents)) {
return (
Loading...
);
}
const _residents = residents.getOrElse([]);
return (
{_residents.map(point => (
))}
);
}
export default function Residents() {
const { pop } = useLocalRouter();
const name = useCurrentPointName();
// const { pointCursor } = usePointCursor();
const [currentTab, setCurrentTab] = useState(NAMES.ALL);
const [req, selectRequest] = useState();
return (
Residents
);
}