Skip to content

Commit

Permalink
Add Canada domains and handle errors better in web app
Browse files Browse the repository at this point in the history
  • Loading branch information
nas5w committed Jan 17, 2025
1 parent 86b4174 commit 92dc291
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 19 deletions.
16 changes: 10 additions & 6 deletions projects/config/index.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
export const config = {
us: {
name: "United States",
domains: [".gov", ".mil"],
br: {
name: "Brazil",
domains: [".gov.br"],
},
ca: {
name: "Canada",
domains: [".gc.ca", ".canada.ca"],
},
uk: {
name: "United Kingdom",
domains: [".gov.uk"],
},
br: {
name: "Brazil",
domains: [".gov.br"],
us: {
name: "United States",
domains: [".gov", ".mil"],
},
} as const;

Expand Down
34 changes: 21 additions & 13 deletions projects/web/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ function App() {
const { country } = useParams<"country">();
const [allHandles, setAllHandles] = useState<DomainHandles[]>();
const [domains, setDomains] = useState<AllowedDomains>();
const [error, setError] = useState(false);
const [term, setTerm] = useState("");
const navigate = useNavigate();

Expand All @@ -29,17 +30,20 @@ function App() {

setDomains(domains);

const results = (
await Promise.all(
domains.map(async (domain) => {
const res = await fetch(`https://govsky.fly.dev/api/${domain}`);
const { data } = await res.json();
return { domain, data: data as ApiUser[] };
})
)
).flat();

setAllHandles(results);
try {
const results = (
await Promise.all(
domains.map(async (domain) => {
const res = await fetch(`https://govsky.fly.dev/api/${domain}`);
const { data } = await res.json();
return { domain, data: (data || []) as ApiUser[] };
})
)
).flat();
setAllHandles(results);
} catch {
setError(true);
}
}
load();
}, [country, navigate]);
Expand Down Expand Up @@ -97,8 +101,12 @@ function App() {
</div>

{!data ? (
<p className="no-results">Loading...</p>
) : !data.length ? (
<p className="no-results">
{error
? "There was an error loading this page. Please try again. If the problem persists, report an issue on GitHub."
: "Loading..."}
</p>
) : data.length <= 1 ? (
<p className="no-results">No results.</p>
) : (
<TreeView
Expand Down

0 comments on commit 92dc291

Please sign in to comment.