lightnet 3.10.4 → 3.10.5
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 +6 -0
- package/__e2e__/admin.spec.ts +71 -12
- package/__e2e__/fixtures/basics/node_modules/.bin/astro +2 -2
- package/__e2e__/fixtures/basics/package.json +2 -2
- package/package.json +4 -5
- package/src/admin/components/form/DynamicArray.tsx +74 -0
- package/src/admin/components/form/Input.tsx +5 -5
- package/src/admin/components/form/Select.tsx +8 -10
- package/src/admin/components/form/SubmitButton.tsx +9 -12
- package/src/admin/components/form/atoms/ErrorMessage.tsx +7 -28
- package/src/admin/components/form/atoms/Hint.tsx +2 -2
- package/src/admin/components/form/atoms/Label.tsx +5 -1
- package/src/admin/components/form/atoms/Legend.tsx +12 -2
- package/src/admin/components/form/hooks/use-field-error.tsx +3 -11
- package/src/admin/i18n/translations/en.yml +15 -5
- package/src/admin/pages/media/EditForm.tsx +20 -4
- package/src/admin/pages/media/EditRoute.astro +28 -9
- package/src/admin/pages/media/fields/Authors.tsx +35 -50
- package/src/admin/pages/media/fields/Categories.tsx +64 -0
- package/src/admin/pages/media/fields/Collections.tsx +103 -0
- package/src/admin/pages/media/media-item-store.ts +6 -1
- package/src/admin/types/media-item.ts +34 -2
- package/src/components/CategoriesSection.astro +2 -2
- package/src/components/MediaGallerySection.astro +3 -3
- package/src/components/MediaList.astro +2 -2
- package/src/content/get-categories.ts +18 -3
- package/src/i18n/resolve-language.ts +1 -1
- package/src/layouts/Page.astro +3 -2
- package/src/layouts/components/LanguagePicker.astro +1 -1
- package/src/pages/details-page/components/more-details/Languages.astro +2 -2
- package/src/pages/search-page/components/SearchFilter.astro +7 -7
- package/src/pages/search-page/components/SearchFilter.tsx +4 -4
- package/src/pages/search-page/components/SearchList.astro +4 -4
- package/src/pages/search-page/components/SearchListItem.tsx +4 -4
- package/src/pages/search-page/components/Select.tsx +3 -3
- package/src/pages/search-page/hooks/use-search.ts +4 -4
|
@@ -5,13 +5,13 @@ import { detailsPagePath } from "../../../utils/paths"
|
|
|
5
5
|
import type { SearchItem } from "../api/search-response"
|
|
6
6
|
|
|
7
7
|
export type MediaType = {
|
|
8
|
-
|
|
8
|
+
labelText: string
|
|
9
9
|
icon: string
|
|
10
10
|
coverImageStyle: "default" | "book" | "video"
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export type TranslatedLanguage = {
|
|
14
|
-
|
|
14
|
+
labelText: string
|
|
15
15
|
direction: "rtl" | "ltr"
|
|
16
16
|
}
|
|
17
17
|
|
|
@@ -58,7 +58,7 @@ export default function SearchListItem({
|
|
|
58
58
|
<h2 className="mb-1 line-clamp-2 text-balance text-sm font-bold text-gray-700 md:mb-3 md:text-base">
|
|
59
59
|
<Icon
|
|
60
60
|
className={`${mediaTypes[item.type].icon} me-2 align-bottom text-2xl text-gray-700`}
|
|
61
|
-
ariaLabel={mediaTypes[item.type].
|
|
61
|
+
ariaLabel={mediaTypes[item.type].labelText}
|
|
62
62
|
/>
|
|
63
63
|
<span>{item.title}</span>
|
|
64
64
|
</h2>
|
|
@@ -70,7 +70,7 @@ export default function SearchListItem({
|
|
|
70
70
|
)}
|
|
71
71
|
{showLanguage && (
|
|
72
72
|
<span className="rounded-lg border border-gray-300 px-2 py-1 text-gray-500">
|
|
73
|
-
{languages[item.language].
|
|
73
|
+
{languages[item.language].labelText}
|
|
74
74
|
</span>
|
|
75
75
|
)}
|
|
76
76
|
<ul
|
|
@@ -2,7 +2,7 @@ type Props = {
|
|
|
2
2
|
label: string
|
|
3
3
|
initialValue: string | undefined
|
|
4
4
|
valueChange: (value: string) => void
|
|
5
|
-
options: { id: string;
|
|
5
|
+
options: { id: string; labelText: string }[]
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export default function Select({
|
|
@@ -21,9 +21,9 @@ export default function Select({
|
|
|
21
21
|
value={initialValue}
|
|
22
22
|
onChange={(e) => valueChange(e.currentTarget.value)}
|
|
23
23
|
>
|
|
24
|
-
{options.map(({ id,
|
|
24
|
+
{options.map(({ id, labelText }) => (
|
|
25
25
|
<option key={id} value={id}>
|
|
26
|
-
{
|
|
26
|
+
{labelText}
|
|
27
27
|
</option>
|
|
28
28
|
))}
|
|
29
29
|
</select>
|
|
@@ -6,8 +6,8 @@ import { observeSearchQuery, type SearchQuery } from "../utils/search-query"
|
|
|
6
6
|
|
|
7
7
|
interface Context {
|
|
8
8
|
categories: Record<string, string>
|
|
9
|
-
mediaTypes: Record<string, {
|
|
10
|
-
languages: Record<string, {
|
|
9
|
+
mediaTypes: Record<string, { labelText: string }>
|
|
10
|
+
languages: Record<string, { labelText: string }>
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export function useSearch({ categories, mediaTypes, languages }: Context) {
|
|
@@ -39,8 +39,8 @@ export function useSearch({ categories, mediaTypes, languages }: Context) {
|
|
|
39
39
|
const translatedCategories =
|
|
40
40
|
item.categories &&
|
|
41
41
|
item.categories.map((categoryId) => categories[categoryId])
|
|
42
|
-
const translatedType = mediaTypes[item.type].
|
|
43
|
-
const translatedLanguage = languages[item.language].
|
|
42
|
+
const translatedType = mediaTypes[item.type].labelText
|
|
43
|
+
const translatedLanguage = languages[item.language].labelText
|
|
44
44
|
|
|
45
45
|
return {
|
|
46
46
|
...item,
|