All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add support for Shlink 5.0.0, by supporting date-based redirect conditions.
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- #874 Simplify redux models by using a discriminator
statusprop to indicate all their possible states (loading, error, success, etc.). - #161 Migrate from redux
connectto redux hooks, and stop injecting redux state and actions via DI container. - #911 Stop injecting components in other components via DI container.
- Nothing
- Nothing
- #878 Fix real-time updates interval setting being ignored.
- #839 Allow filtering short URLs by excluded tags when using Shlink >=4.6.0
- #838 Allow filtering tag, orphan and non-orphan visits by domain, when using Shlink >=4.6.0
- #784 Add optional
long-urlquery parameter to short URL creation to prefill the long URL programmatically.
- #519 Redesign short URLs filtering bar for more clarity and consistency
- Nothing
- Drop support for Shlink older than 4.0.0
- Nothing
- Nothing
- Switch to trusted publishing
- Nothing
- Nothing
- Nothing
- Nothing
- Update to FontAwesome react component v3
- Nothing
- Nothing
- Nothing
-
#755 Add support for
any-value-query-paramandvalueless-query-paramredirect conditions when using Shlink >=4.5.0. -
#756 Add support for desktop device types on device redirect conditions, when using Shlink >=4.5.0.
-
#713 Expose a new
ShlinkSidebarToggleButtoncomponent that can be used to customize the location of the sidebar toggle, rather than making it assume there's a header bar and position it there. -
#657 Allow visits table columns to be customized via settings, and add a new optional "Region" column.
As a side effect, the "Show user agent" toggle has been removed from the list, as this can now be globally configured in the settings.
- Nothing
- Nothing
- Nothing
- #698 Fix line chart selection triggering after clicking a dot in the chart. It now works only when dragging while the mouse is clicked.
- Nothing
- Update to FontAwesome 7
- Nothing
- Drop support for React 18
- #639 Fix contrast issues and re-enable contrast checks during tests.
- Nothing
- #661 Update to shlink-frontend-kit 1.0.0
- No longer use
!importantwith tailwind styles
- Nothing
- Nothing
- Fix tags row menu positioning in mobile devices.
- Nothing
- Replace
react-tag-autocompletewithTagsAutocompletefrom shlink-frontend-kit.
- Nothing
- Nothing
- Reduce sidebar z-index to be lower than shlink-frontend-kit's NavBar
- Nothing
- Migrate from reactstrap's tooltip to shlink-frontend-kit tailwind-based
Tooltip. - Migrate from reactstrap's dropdown to shlink-frontend-kit tailwind-based
Dropdown.
- Nothing
- Nothing
- Nothing
- Nothing
- Tailwind migration progress:
- Migrated all bootstrap classes to tailwind
- Migrate all non-tailwind shlink-frontend-kit components to the corresponding tailwind replacement when available.
- Migrate all reactstrap components to the corresponding shlink-frontend-kit tailwind replacement when available.
- Nothing
- Nothing
- Nothing
- Nothing
- Start migration to tailwind
- Start using new light mode brand color in some places
- Nothing
- Nothing
- #639 Fix some contrast ration issues reported by axe in a11y tests.
- #641 Allow custom logos to be selected for the short URL QR code.
- #640 Allow default QR code settings to be handled via app settings.
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Update dependencies
- QR codes are now client-side generated, without hitting Shlink's server.
- Run unit tests in an actual browser using vitest browser mode and playwright.
- Nothing
- Drop support for
@shlinkio/shlink-frontend-kit0.7.*
- Simplified some tests to be less dependent on complex and brittle snapshots.
- Add support for
@shlinkio/shlink-frontend-kit0.8
- Update dependencies
- Deprecate
updateSettingsprop inShelinkWebSettings. UseonUpdateSettingsinstead.
- Nothing
- Nothing
- Nothing
- Replace sass
@imports with@use. - Update to
@shlinkio/shlink-js-sdkv2.0.
- Nothing
- Drop support for Shlink <3.5.0.
- Nothing
- Add support for React 19
- Nothing
- Nothing
- Nothing
- Fix bots visits displayed in overview cards even if bots are excluded, if the amount of non-bot visits is zero.
- Nothing
- Update to react-router 7.
- Nothing
- Remove support for react-router 6.
- Nothing
- #491 Add support for colors in QR code configurator.
- #515 Add support for geolocation redirect conditions, when using Shlink 4.3 or newer.
- #514 Allow filtering short URLs list by domain, when using Shlink 4.3 or newer.
- #520 Allow navigating from domains list to short URLs list filtered by one domain, when using Shlink 4.3 or newer.
- #517 Update list of known domains when a short URL is created with a new domain.
- #292 Add icon in short URLs list indicating if a short URL has redirect rules.
- Nothing
- Nothing
- Nothing
- #504 Fix fallback interval not causing new visits to be loaded.
- Nothing
- Nothing
- Nothing
- Nothing
- #475 Fix incorrect amount of dots being displayed in line charts when the difference in days/weeks/months is rounded up.
- Nothing
- Publish package as ES module only.
- Nothing
- Nothing
- Nothing
- Nothing
- Update to
@shlinkio/shlink-frontend-kit0.6.0
- Nothing
- Nothing
- #475 Fix one extra empty dot being displayed in time/line charts.
- Nothing
- Nothing
- Nothing
- Nothing
- #461 Ensure
shortUrlsList.confirmDeletionsetting istruein any case, except when explicitly set tofalse. - #237 Set darker color for previous period in charts, when light theme is enabled.
- #246 Fix selected date range not reflected in visits comparison date range selector, when selecting it in the line chart via drag'n'drop.
- Document how
<ShlinkWebSettings />is used. - #411 Add support for
ip-addressredirect conditions when Shlink server is >=4.2 - #196 Allow active date range to be changed by selecting a range in visits and visits-comparison line charts.
- #307 Add new setting to disable short URL deletions confirmation.
- #435 Allow toggling between displaying raw user agent and parsed browser/OS in visits table.
- #197 Allow line charts to be expanded to the full size of the viewport, both in individual visits views, and when comparing visits.
- #382 Initialize QR code modal with all params unset, so that they fall back to the server defaults. Additionally, allow them to be unset if desired.
- Update to
@shlinkio/eslint-config-js-coding-standard3.0, and migrate to ESLint flat config.
- Nothing
- Nothing
- #331 Fix short URL deletion confirmation modal getting closed when deleting the short URL failed.
- Add new
@shlinkio/shlink-web-client/settingsentry point, to expose a component rendering the settings form and all settings-related types.
- Update dependencies
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Make sure project dependencies are not bundled with package.
- #244 Display
visitedUrlin visits table if the visit object has it, regardless of it being an orphan visit or not. - #327 Ensure orphan visits type is sent to the server, to enable server-side filtering when consumed Shlink supports it.
- #293 Allow redirect rules to be ordered via drag'n'drop, when using a desktop device.
- Update JS coding standard
- Nothing
- Nothing
- #302 Hide short URLs paginator while loading, so that it doesn't display outdated info.
- #294 Hide "validate URL" control when consuming Shlink >=4.0, as it is ignored in that case.
- #271 Add support for redirect rules when consuming Shlink 4.0.0.
- #249 Replace
react-datepickerwith nativeinput[type="date"]andinput[type="datetime-local"]elements. - #257 Remove dependency on
react-copy-to-clipboard. - #278 Update to
@shlinkio/shlink-js-sdkv1.0.0.
- Nothing
- #276 Drop support for Shlink older than 3.3.0.
- Nothing
-
#7 Allow comparing visits for multiple short URLs, tags or domains.
When in the tags, domains or short URLs tables, you can now pick up to 5 items to compare their visits. Once selected, you are taken to a section displaying a comparative line chart, which supports all regular visits filtering capabilities.
-
#9 Allow comparing visits with the previous period.
- Nothing
- Nothing
- Nothing
- #217 Fix all visits loaded when trying to reset other non-date related filters
- #22 Ensure unknown query params are preserved by query-related hooks
- #117 Migrate charts from Chart.JS to Recharts.
- Update to Redux Toolkit 2.0 and react-redux 9.0
- Update to vitest 1.0.0
- Nothing
- Nothing
- #146 Make sure selected visits are reset when filtering changes.
- #123 Do not reset short URL creation form if saving failed.
-
#12 and #13 Add new "Visits options" section for arbitrary visit stats options. Add section to delete short URL and orphan visits there.
This section is only visible if short URL visits deletion or orphan visits deletion are supported by connected Shlink server.
-
#10 Improve general accessibility.
- The project no longer depends on ramda
- Replace
classnamespackage withclsx - Enable react hooks linting rules and fix cases where they are not fulfilled.
- Nothing
- Nothing
- Nothing
- #10 Add accessibility tests, fix accessibility issues and enable accessibility linting rules.
- #49 Enable and address react-hooks linting rules.
- Nothing
- Nothing
- Nothing
- Nothing
- Improve components DI.
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Fix more unpacked methods from
ShlinkApiClient, in visits reducers.
- Nothing
- Replace copy-pasted
ShlinkApiClientused in dev, with official JS SDK. - Add
@shlinkio/shlink-js-sdkas an optional peer dependency.
- Nothing
- Remove
api-contracttypes. Now the/api-contractentry point re-exposes types from@shlinkio/shlink-js-sdk/api-contract.
- Do not unpack methods from
ShlinkApiClient, and instead invoke them from the object itself, to avoid loosing binding tothis.
- Nothing
- #34 Decouple
TagsSelectorfromtagsListreducer. - #37 Replace
react-colorfulwith native color input for tag colors. - Consolidate and decouple API contract from other models and helpers.
- Nothing
- Nothing
- Nothing
- #5 Add basic documentation in README file.
- Nothing
- Nothing
- Remove
uisettings from this component's contract, as theme is implicit by "surrounding" styles. - Do not require
baseUrlandapiKeyonShlinkApiClientimplementors. That's an implementation detail which depends on the specific use case.
- #14 Fix error in
OpenMapModalBtn. - #8 Fix tags not getting reloaded from
APIClient.listTags, except when loading tags list section.
- #4 Add dev sandbox to test component
- Nothing
- Nothing
- Nothing
- #1 Avoid tag removal on TagsSelector when adding a duplicated tag
- Nothing
- Nothing
- Nothing
- Nothing
- Register Chart.js charts
- Add leaflet helper function to fix icons
- Add missing package.json reference in exports definition
- First release
- Nothing
- Nothing
- Nothing
- Nothing