(`/api/budgets/${budgetId}/shares/${shareId}`, { permission });
- setShares(prev => prev.map(s => s.id === shareId ? updated : s));
- };
-
- const revokeShare = async (shareId: string) => {
- if (!budgetId) return;
- await api.delete(`/api/budgets/${budgetId}/shares/${shareId}`);
- setShares(prev => prev.filter(s => s.id !== shareId));
- };
-
if (!budget) return Loading...
;
return (
@@ -74,7 +54,7 @@ export function SettingsPage() {
@@ -89,7 +69,7 @@ export function SettingsPage() {
onChange={e => setTaxInput(e.target.value)}
style={{ width: '60px' }}
/>
-
+
@@ -111,14 +91,14 @@ export function SettingsPage() {
|
{s.isPending ? Pending : 'Active'} |
- |
+ |
))}