refactor: convert `URLManager` class into `useUrl()` composable
Convert the URLManager class into a useUrl() composable.
In this case we should use a composable instead of a class because we are using Vue code in the URLManager.
TypeScript classes or normal functions can be used if they don't need to interact with Vue code.
As soon as we interact with Vue code (ref, watch, VueUse or custom composables, etc), we should put the code into components or custom composables.
With this approach, the Vue code and reactive stuff will be registered synchronously and therefore will be cleaned up correctly by Vue and there won't be any surprises skateFONT.
However, if Vue code is called outside components or composables, it might not be tracked or cleaned up correctly because this Vue code migh not be executed in the "Vue scope" but in normal TS classes or functions.
The functions which are not returned inside the composable where the private methods before. Because they are not returned, they are still private, so we get the same benefits here.
The following code is now only executed once:
const params = useUrlSearchParams('history')
const iconStore = useIconsStore()
const { downloadIcon } = useDownloadIcon()
Before, this code was executed many times in multiple places which could potentially lead to unwanted behavior because composables should only be instantiated once (per file).