@autobusal/providers 1.4.1 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,30 @@ All notable changes to `@autobusal/providers` are documented here. This project
4
4
  adheres to [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
5
5
  [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [1.5.1] - 2026-07-30
8
+
9
+ ### Fixed
10
+
11
+ - **`Errors/Message.tsx` (404 / system error page) never rendered a
12
+ `<title>` of its own** - relied entirely on `Preload`'s app-shell fallback
13
+ (the company name), and shipped `noIndex` neither. Now renders its own
14
+ `<Meta>` with the localized not-found/system-error message as the title
15
+ and `noIndex={true}` - error pages have no unique content worth indexing.
16
+ Pairs with `@autobusal/common` 1.5.1's title-ownership fix in the same
17
+ release, which also cleans up the resulting `<title>` duplication with
18
+ `Preload`'s fallback.
19
+
20
+ ## [1.5.0] - 2026-07-30
21
+
22
+ ### Fixed
23
+
24
+ - **`Setup/Preload.tsx` migrated off `react-helmet`** to React 19's native
25
+ `<title>`/`<meta>`/`<link>` hoisting, same root cause and fix as
26
+ `@autobusal/common`'s `Meta.tsx` in this same release - see that
27
+ package's changelog for the full diagnosis. No behavior change intended
28
+ beyond making the title/favicon/theme-color tags this component sets
29
+ actually reach the DOM, which they silently weren't.
30
+
7
31
  ## [1.4.1] - 2026-07-30
8
32
 
9
33
  ### Fixed
@@ -1,5 +1,5 @@
1
1
  import { useNavigate } from 'react-router-dom';
2
- import { Button } from '@autobusal/common';
2
+ import { Button, Meta } from '@autobusal/common';
3
3
  import { useSystemTheme } from '@autobusal/hooks';
4
4
  import { getLanguage } from '../Setup/languages';
5
5
  import errors from '@lang/errors';
@@ -25,7 +25,7 @@ const Message = ({ type }: Props): JSX.Element => {
25
25
  const translations = errors[language as keyof typeof errors] ?? errors.en;
26
26
 
27
27
  return (
28
- <>
28
+ <Meta title={ type === 'not_found' ? translations.not_found : translations.system } noIndex={ true }>
29
29
  <Background />
30
30
 
31
31
  <Container className="box">
@@ -54,7 +54,7 @@ const Message = ({ type }: Props): JSX.Element => {
54
54
  onClick={ () => navigate('/') }
55
55
  />
56
56
  </Container>
57
- </>
57
+ </Meta>
58
58
  );
59
59
  };
60
60
 
package/Setup/Preload.tsx CHANGED
@@ -1,4 +1,3 @@
1
- import { Helmet } from 'react-helmet';
2
1
  import { SettingsData } from '../types/settings';
3
2
  import { useSystemTheme } from '@autobusal/hooks';
4
3
 
@@ -7,6 +6,13 @@ interface Props {
7
6
  children: JSX.Element
8
7
  }
9
8
 
9
+ // React 19 automatically hoists any <title>/<meta>/<link> rendered anywhere
10
+ // in the tree into <head> (deduplicating <title> and meta[name=...], last
11
+ // render wins) - no wrapper component needed. Replaced react-helmet, which
12
+ // had gone silently non-functional under React 19 (see @autobusal/common's
13
+ // Meta.tsx for how this was diagnosed). This <title> is the app-shell
14
+ // fallback rendered above the router; a page's own <Meta title=...> renders
15
+ // deeper in the tree and correctly overrides it once data loads.
10
16
  const Preload = ({ data, children }: Props): JSX.Element => {
11
17
  // we arrange the font family names before inserting them
12
18
  const fontTitle = data.theme.fontFamily.title.replace(/ /g, '+');
@@ -18,21 +24,19 @@ const Preload = ({ data, children }: Props): JSX.Element => {
18
24
 
19
25
  return (
20
26
  <>
21
- <Helmet>
22
- <title>{ data.preferences.company }</title>
23
-
24
- <link rel="apple-touch-icon" sizes="180x180" href={ `${ data.url }/favicons/apple-touch-icon.png` } />
25
- <link rel="icon" type="image/png" sizes="32x32" href={ `${ data.url }/favicons/favicon-32x32.png` } />
26
- <link rel="icon" type="image/png" sizes="16x16" href={ `${ data.url }/favicons/favicon-16x16.png` } />
27
- <link rel="manifest" href={ `${ data.url }/favicons/site.webmanifest` } />
28
- <link rel="mask-icon" href={ `${ data.url }/favicons/safari-pinned-tab.svg` } color={ primaryColor } />
29
- <link rel="shortcut icon" href={ `${ data.url }/favicons/favicon.ico` } />
30
- <meta name="msapplication-TileColor" content={ primaryColor } />
31
- <meta name="msapplication-config" content={ `${ data.url }/favicons/browserconfig.xml` } />
32
- <meta name="theme-color" content={ primaryColor } />
33
-
34
- <link href={ `https://fonts.googleapis.com/css2?family=${ fontTitle }:wght@700&family=${ fontContent }:wght@300;400;700&display=swap` } rel="stylesheet" />
35
- </Helmet>
27
+ <title>{ data.preferences.company }</title>
28
+
29
+ <link rel="apple-touch-icon" sizes="180x180" href={ `${ data.url }/favicons/apple-touch-icon.png` } />
30
+ <link rel="icon" type="image/png" sizes="32x32" href={ `${ data.url }/favicons/favicon-32x32.png` } />
31
+ <link rel="icon" type="image/png" sizes="16x16" href={ `${ data.url }/favicons/favicon-16x16.png` } />
32
+ <link rel="manifest" href={ `${ data.url }/favicons/site.webmanifest` } />
33
+ <link rel="mask-icon" href={ `${ data.url }/favicons/safari-pinned-tab.svg` } color={ primaryColor } />
34
+ <link rel="shortcut icon" href={ `${ data.url }/favicons/favicon.ico` } />
35
+ <meta name="msapplication-TileColor" content={ primaryColor } />
36
+ <meta name="msapplication-config" content={ `${ data.url }/favicons/browserconfig.xml` } />
37
+ <meta name="theme-color" content={ primaryColor } />
38
+
39
+ <link href={ `https://fonts.googleapis.com/css2?family=${ fontTitle }:wght@700&family=${ fontContent }:wght@300;400;700&display=swap` } rel="stylesheet" />
36
40
 
37
41
  { children }
38
42
  </>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autobusal/providers",
3
- "version": "1.4.1",
3
+ "version": "1.5.1",
4
4
  "author": "Ferjolt Ozuni",
5
5
  "type": "module",
6
6
  "main": "index.ts"