This new component doesn't rely on marked.js but escapes any special
characters and then replaces any backtick with a <code> HTML tag to
render any inline codeblocks in all titles.
Since the legacy config is being deprecated at the end of 2024, we
should start moving to the eslint flat config.
I avoided the tseslint config helper function so we avoid wrapping
magic.
This seems to have triggered more checking since any checks in svelte
files have appeared and the $$Generic type that is being deprecated had
to be rewritten.
Also fixes some any types that weren't caught previously
We have a new apiVersion value in the config json that needs to be
changed for each breaking change on httpd so we can simulate a new
resource to the cache and get it cleared.
Also improves the ResponseParseError giving the user more information
on, if the node or the web client is outdated
We consolidate the code that fetches the data for `ProjectCard` in one
module, adjacent to the `ProjectCard` component. We also consolidate all
the data into one interface to simplify the component API.
With the data loading in one place we can eliminate duplicate code and a
handful of helper functions.
The consolidation also allows us to discover some optimizations to
fetching: We parallelize requests and we use the commit detail endpoint
instead of the commit list endpoint. For the latter to pay off, we need
to deploy caching to the API.
Since we don't have or want any deployments on IPFS, and we don't have
much use for hash routing else, we can clean up some code and remove
some tests.
We make source code browsing faster by re-using project-level data when
navigating between files. This comes at a cost: Project info (like the
issue counter), remotes and branches are only updated when the page is
hard-refreshed or the user navigates away from the source code view.
We tell users to check their firewall and ad blocker settings in case
they bump into authentication problems. This also separates out the
modal to be only used by the session view.
- Handle ResponseParseErros, ResponseErrors and normal errors
differently.
- Show them all in the same `LoadError` view
- Add a subtitle to give users some more information on what could have
gone wrong.
- Add more properties to the copyable error message to make debugging
easier.