Skip to content

Commit 9214ca0

Browse files
authored
chore: merge pull request #90 from Questionable-Content-Extensions/release/1.3.0
Release version 1.3.0
2 parents 58757f5 + 0cd5ca2 commit 9214ca0

14 files changed

Lines changed: 7113 additions & 3353 deletions

File tree

.github/workflows/CI.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ jobs:
4444
"npx wait-on http://127.0.0.1:6006/ && npm run test-storybook"
4545
4646
- name: Deploy Storybook
47+
if: github.event_name != 'pull_request'
4748
uses: JamesIves/github-pages-deploy-action@v4
4849
with:
4950
folder: storybook-static

.github/workflows/draft_new_hotfix.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ jobs:
1414
steps:
1515
- uses: actions/checkout@v3
1616

17+
- name: Install Node modules
18+
run: npm ci
19+
1720
- name: Create hotfix branch
1821
run: git checkout -b hotfix/${{ github.event.inputs.version }}
1922

@@ -22,6 +25,9 @@ jobs:
2225
with:
2326
version: ${{ github.event.inputs.version }}
2427

28+
- name: Format changelog
29+
run: npx prettier -w ./CHANGELOG.md
30+
2531
# In order to make a commit, we need to initialize a user.
2632
- name: Initialize mandatory git config
2733
run: |

.github/workflows/draft_new_release.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ jobs:
1414
steps:
1515
- uses: actions/checkout@v3
1616

17+
- name: Install Node modules
18+
run: npm ci
19+
1720
- name: Create release branch
1821
run: git checkout -b release/${{ github.event.inputs.version }}
1922

@@ -22,6 +25,9 @@ jobs:
2225
with:
2326
version: ${{ github.event.inputs.version }}
2427

28+
- name: Format changelog
29+
run: npx prettier -w ./CHANGELOG.md
30+
2531
# In order to make a commit, we need to initialize a user.
2632
- name: Initialize mandatory git config
2733
run: |

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.3.0] - 2024-02-03
11+
12+
### Added ✨
13+
14+
- Add option for sorting members by recent apperance in addition to the existing option of sorting by number of appearances. Closes [#87](https://github.com/Questionable-Content-Extensions/client/issues/87)
15+
1016
## [1.2.1] - 2023-09-22
1117

1218
### Fixed 🐛
@@ -392,7 +398,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
392398
[0.1.0]: https://github.com/Questionable-Content-Extensions/client/releases/tag/0.1.0
393399
[issues]: https://github.com/Questionable-Content-Extensions/client/issues
394400
[1.0.0]: https://github.com/Questionable-Content-Extensions/client/compare/0.6.2...1.0.0
395-
[Unreleased]: https://github.com/Questionable-Content-Extensions/client/compare/1.2.1...HEAD
401+
[Unreleased]: https://github.com/Questionable-Content-Extensions/client/compare/1.3.0...HEAD
402+
[1.3.0]: https://github.com/Questionable-Content-Extensions/client/compare/1.2.1...1.3.0
396403
[1.2.1]: https://github.com/Questionable-Content-Extensions/client/compare/1.2.0...1.2.1
397404
[1.2.0]: https://github.com/Questionable-Content-Extensions/client/compare/1.1.0...1.2.0
398405
[1.1.0]: https://github.com/Questionable-Content-Extensions/client/compare/1.0.0...1.1.0

package-lock.json

Lines changed: 6996 additions & 3315 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "questionable-content-spa",
3-
"version": "1.2.1",
3+
"version": "1.3.0",
44
"description": "Questionable Content Single-Page Application with Extra Features",
55
"private": true,
66
"scripts": {
@@ -37,9 +37,9 @@
3737
"@storybook/preview-api": "^7.4.0",
3838
"@storybook/react": "^7.4.0",
3939
"@storybook/react-webpack5": "^7.4.0",
40-
"@storybook/test-runner": "^0.13.0",
40+
"@storybook/test-runner": "^0.16.0",
4141
"@storybook/testing-library": "^0.2.0",
42-
"@trivago/prettier-plugin-sort-imports": "^4.2.0",
42+
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
4343
"@types/greasemonkey": "^4.0.4",
4444
"@types/react-color": "^3.0.6",
4545
"@types/redux-logger": "^3.0.9",
@@ -51,7 +51,7 @@
5151
"lint-staged": "^14.0.1",
5252
"msw": "^1.3",
5353
"npm-run-all": "^4.1.5",
54-
"postcss": "^8.4.29",
54+
"postcss": "^8.4.31",
5555
"prettier": "^3.0.3",
5656
"prop-types": "^15.8.1",
5757
"react-app-rewired": "^2.2.1",

src/components/ComicDetailsPanel/ComicDetailsPanel.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ export default function ComicDetailsPanel() {
276276
isLoading={isLoadingInitial}
277277
isFetching={isFetching}
278278
useColors={settings.useColors}
279+
orderMembersByLastAppearance={false}
279280
onSetCurrentComic={(c, locked) =>
280281
dispatch(setCurrentComic(c, { locked }))
281282
}
@@ -368,6 +369,9 @@ export default function ComicDetailsPanel() {
368369
}
369370
useColors={settings.useColors}
370371
editMode={settings.editMode}
372+
orderMembersByLastAppearance={
373+
settings.orderMembersByLastAppearance
374+
}
371375
onAddItem={(itemBody) => {
372376
addItem({
373377
token: settings.editModeToken,

src/components/ComicDetailsPanel/ItemNavigation/ItemNavigation.tsx

Lines changed: 56 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export default function ItemNavigation({
1515
isLoading,
1616
isFetching,
1717
useColors,
18+
orderMembersByLastAppearance,
1819
onSetCurrentComic,
1920
onShowInfoFor,
2021
mode,
@@ -27,6 +28,7 @@ export default function ItemNavigation({
2728
isLoading: boolean
2829
isFetching: boolean
2930
useColors: boolean
31+
orderMembersByLastAppearance: boolean
3032
onSetCurrentComic: (comicNo: ComicId, locked: boolean) => void
3133
onShowInfoFor: (item: ItemId) => void
3234
mode: PickEnum<
@@ -76,8 +78,16 @@ export default function ItemNavigation({
7678
location: location.map(itemNavigationToNavElement),
7779
storyline: storyline.map(itemNavigationToNavElement),
7880
locked: locked.map(itemNavigationToNavElement),
81+
all: itemNavigationData.map(itemNavigationToNavElement),
7982
}
80-
}, [cast, location, storyline, locked, itemNavigationToNavElement])
83+
}, [
84+
cast,
85+
location,
86+
storyline,
87+
locked,
88+
itemNavigationData,
89+
itemNavigationToNavElement,
90+
])
8191

8292
if (isLoading) {
8393
return (
@@ -98,42 +108,55 @@ export default function ItemNavigation({
98108
return <></>
99109
}
100110

101-
return (
102-
<div className="text-center">
103-
{!!itemNavElements.locked.length && (
104-
<ItemTypeSection
105-
header="Navigation Locked"
106-
isFetching={isFetching}
107-
mode={mode}
108-
elements={itemNavElements.locked}
109-
/>
110-
)}
111-
{!!itemNavElements.cast.length && (
112-
<ItemTypeSection
113-
header="Cast Members"
114-
isFetching={isFetching}
115-
mode={mode}
116-
elements={itemNavElements.cast}
117-
/>
118-
)}
119-
{!!itemNavElements.location.length && (
120-
<ItemTypeSection
121-
header="Locations"
122-
isFetching={isFetching}
123-
mode={mode}
124-
elements={itemNavElements.location}
125-
/>
126-
)}
127-
{!!itemNavElements.storyline.length && (
111+
if (!orderMembersByLastAppearance) {
112+
return (
113+
<div className="text-center">
114+
{!!itemNavElements.locked.length && (
115+
<ItemTypeSection
116+
header="Navigation Locked"
117+
isFetching={isFetching}
118+
mode={mode}
119+
elements={itemNavElements.locked}
120+
/>
121+
)}
122+
{!!itemNavElements.cast.length && (
123+
<ItemTypeSection
124+
header="Cast Members"
125+
isFetching={isFetching}
126+
mode={mode}
127+
elements={itemNavElements.cast}
128+
/>
129+
)}
130+
{!!itemNavElements.location.length && (
131+
<ItemTypeSection
132+
header="Locations"
133+
isFetching={isFetching}
134+
mode={mode}
135+
elements={itemNavElements.location}
136+
/>
137+
)}
138+
{!!itemNavElements.storyline.length && (
139+
<ItemTypeSection
140+
header="Storylines"
141+
isFetching={isFetching}
142+
mode={mode}
143+
elements={itemNavElements.storyline}
144+
/>
145+
)}
146+
</div>
147+
)
148+
} else {
149+
return (
150+
<div className="text-center">
128151
<ItemTypeSection
129-
header="Storylines"
152+
header="Recent"
130153
isFetching={isFetching}
131154
mode={mode}
132-
elements={itemNavElements.storyline}
155+
elements={itemNavElements.all}
133156
/>
134-
)}
135-
</div>
136-
)
157+
</div>
158+
)
159+
}
137160
}
138161

139162
function ItemTypeSection({

src/components/FilteredNavigationData/FilteredNavigationData.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export default function FilteredNavigationData({
2424
onSetCurrentComic,
2525
onShowInfoFor,
2626
useColors,
27+
orderMembersByLastAppearance,
2728
editMode,
2829
onAddItem,
2930
}: {
@@ -35,6 +36,7 @@ export default function FilteredNavigationData({
3536
onSetCurrentComic: (comicId: ComicId) => void
3637
onShowInfoFor: (item: ItemId) => void
3738
useColors: boolean
39+
orderMembersByLastAppearance: boolean
3840
editMode: boolean
3941
onAddItem: (item: ItemBody) => void
4042
}) {
@@ -80,6 +82,9 @@ export default function FilteredNavigationData({
8082
isLoading={isLoading}
8183
isFetching={isFetching}
8284
useColors={useColors}
85+
orderMembersByLastAppearance={
86+
orderMembersByLastAppearance
87+
}
8388
onSetCurrentComic={onSetCurrentComic}
8489
onShowInfoFor={onShowInfoFor}
8590
mode={NavElementMode.Missing}

src/components/SettingsDialog/SettingsPanel/SettingsPanel.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,18 @@ export default function SettingsPanel({
3333
"treated like it's enabled, as an editor needs a list of all the cast to do their job effectively."
3434
}
3535
/>
36+
<ToggleSetting
37+
settings={settings}
38+
setting="orderMembersByLastAppearance"
39+
updateSettings={updateSettings}
40+
label="Order members by last appearance"
41+
description={
42+
"Ordinarily, members are ordered by how frequently they appear in the comic's strips. " +
43+
"By enabling this setting, they will instead be ordered by how recently they've appeared in the comic " +
44+
"relative to the currently viewed comic. This can be useful if you're an editor because the comic tends " +
45+
'to focus on a set of characters and locations in bulk, which makes finding them easier with this setting on.'
46+
}
47+
/>
3648
<ToggleSetting
3749
settings={settings}
3850
setting="skipNonCanon"

0 commit comments

Comments
 (0)