Skip to content
Merged

Beta #589

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
7879 commits
Select commit Hold shift + click to select a range
5260cfd
github-actions[bot] Feb 10, 2026
57946c2
List meta in battle results.
nmoschkin Feb 11, 2026
2616848
github-actions[bot] Feb 11, 2026
1934a4f
github-actions[bot] Feb 11, 2026
2e1772e
github-actions[bot] Feb 11, 2026
18197cd
github-actions[bot] Feb 12, 2026
cd50f16
Persist and staffing of correct ship.
nmoschkin Feb 12, 2026
6d591ba
Merge branch 'dev-3.3' into beta
nmoschkin Feb 12, 2026
aef8120
github-actions[bot] Feb 12, 2026
42bdd59
github-actions[bot] Feb 12, 2026
e413ab6
github-actions[bot] Feb 13, 2026
b15fa55
github-actions[bot] Feb 13, 2026
0b8bbb1
github-actions[bot] Feb 13, 2026
eff001a
Align Honor Sales to Tuesdays.
nmoschkin Feb 13, 2026
116fb36
github-actions[bot] Feb 14, 2026
f0abc51
github-actions[bot] Feb 14, 2026
58be8bb
github-actions[bot] Feb 14, 2026
c3c49bc
github-actions[bot] Feb 14, 2026
ba938b2
github-actions[bot] Feb 14, 2026
43e8699
github-actions[bot] Feb 14, 2026
8805ffb
github-actions[bot] Feb 15, 2026
965a62c
github-actions[bot] Feb 15, 2026
bee3d42
github-actions[bot] Feb 15, 2026
45cb001
github-actions[bot] Feb 16, 2026
d5b28fd
github-actions[bot] Feb 16, 2026
74f0f38
github-actions[bot] Feb 16, 2026
4983d6b
github-actions[bot] Feb 16, 2026
af9717f
github-actions[bot] Feb 16, 2026
2ee08a6
github-actions[bot] Feb 16, 2026
d3fe058
Fix FBB 6 not calculating.
nmoschkin Feb 16, 2026
1870bc1
github-actions[bot] Feb 16, 2026
a1a8611
github-actions[bot] Feb 17, 2026
94288c2
github-actions[bot] Feb 17, 2026
0d8a1e7
github-actions[bot] Feb 17, 2026
0c48ad5
github-actions[bot] Feb 17, 2026
422428d
github-actions[bot] Feb 18, 2026
069f3fd
github-actions[bot] Feb 18, 2026
540cc23
github-actions[bot] Feb 18, 2026
8967e09
github-actions[bot] Feb 18, 2026
2ac68f0
github-actions[bot] Feb 18, 2026
bdb5ef3
github-actions[bot] Feb 18, 2026
1687563
Adds coverage labels to FBB tool
ussjohnjay Feb 18, 2026
fca5a64
github-actions[bot] Feb 19, 2026
02694d5
github-actions[bot] Feb 19, 2026
41173b9
github-actions[bot] Feb 19, 2026
c141a19
Manage crew retrieval wishlist
ussjohnjay Feb 19, 2026
7ff9b1c
github-actions[bot] Feb 20, 2026
6b8c24c
github-actions[bot] Feb 20, 2026
56eeb55
github-actions[bot] Feb 20, 2026
74ee9c2
github-actions[bot] Feb 21, 2026
dc2a469
github-actions[bot] Feb 21, 2026
28de4bc
github-actions[bot] Feb 21, 2026
76e6705
github-actions[bot] Feb 22, 2026
afa8497
github-actions[bot] Feb 22, 2026
e764ae8
github-actions[bot] Feb 22, 2026
e4a3ec6
github-actions[bot] Feb 23, 2026
b0876eb
github-actions[bot] Feb 23, 2026
f10358f
github-actions[bot] Feb 23, 2026
d4c1a37
github-actions[bot] Feb 23, 2026
cc2db4b
github-actions[bot] Feb 23, 2026
f106c9e
github-actions[bot] Feb 24, 2026
a524a4b
github-actions[bot] Feb 24, 2026
81cda33
github-actions[bot] Feb 24, 2026
328333b
github-actions[bot] Feb 24, 2026
8ff6d31
github-actions[bot] Feb 25, 2026
69532fb
github-actions[bot] Feb 25, 2026
0b642a1
github-actions[bot] Feb 25, 2026
7cea8ce
github-actions[bot] Feb 26, 2026
6871c82
github-actions[bot] Feb 26, 2026
6e80a57
github-actions[bot] Feb 26, 2026
1351dde
github-actions[bot] Feb 26, 2026
8903120
github-actions[bot] Feb 27, 2026
079348b
github-actions[bot] Feb 27, 2026
75a32a6
github-actions[bot] Feb 27, 2026
335c949
github-actions[bot] Feb 28, 2026
4fbda37
github-actions[bot] Feb 28, 2026
fc62fdd
github-actions[bot] Feb 28, 2026
809119b
github-actions[bot] Mar 1, 2026
297f63e
github-actions[bot] Mar 1, 2026
067c6a1
github-actions[bot] Mar 1, 2026
15b2d5b
Voyage lineup editor toplines AM bonus
ussjohnjay Mar 1, 2026
4c44a15
github-actions[bot] Mar 2, 2026
a6363d0
github-actions[bot] Mar 2, 2026
b736c3f
github-actions[bot] Mar 2, 2026
289d769
github-actions[bot] Mar 2, 2026
cc22a7d
github-actions[bot] Mar 2, 2026
6cd6d0e
github-actions[bot] Mar 2, 2026
59e73c3
github-actions[bot] Mar 3, 2026
a33e6b8
github-actions[bot] Mar 3, 2026
40288c7
github-actions[bot] Mar 3, 2026
cfec14a
github-actions[bot] Mar 3, 2026
db3a347
github-actions[bot] Mar 4, 2026
1f0ec12
Owned immortal / owned FE
nmoschkin Mar 4, 2026
5ec06a3
Merge branch 'dev-3.3' into beta
nmoschkin Mar 4, 2026
da100a7
github-actions[bot] Mar 4, 2026
6397fdb
github-actions[bot] Mar 4, 2026
2aecdac
github-actions[bot] Mar 4, 2026
953ab6f
github-actions[bot] Mar 4, 2026
743d474
github-actions[bot] Mar 4, 2026
d134352
github-actions[bot] Mar 5, 2026
b2ef28f
github-actions[bot] Mar 5, 2026
15faef9
github-actions[bot] Mar 5, 2026
252ec36
github-actions[bot] Mar 6, 2026
add24ae
github-actions[bot] Mar 6, 2026
cd80083
github-actions[bot] Mar 6, 2026
42a4749
github-actions[bot] Mar 6, 2026
bcba95c
github-actions[bot] Mar 7, 2026
23d997f
github-actions[bot] Mar 7, 2026
7ecd16c
github-actions[bot] Mar 7, 2026
e5b8d76
github-actions[bot] Mar 7, 2026
1697a16
github-actions[bot] Mar 8, 2026
9e86d59
Ship staffing prospect editor.
nmoschkin Mar 8, 2026
0cc9332
sort.
nmoschkin Mar 8, 2026
037bd90
Merge branch 'dev-3.3' into beta
nmoschkin Mar 8, 2026
a912b36
github-actions[bot] Mar 8, 2026
298fbe1
github-actions[bot] Mar 8, 2026
005b4d5
github-actions[bot] Mar 9, 2026
537b80f
github-actions[bot] Mar 9, 2026
9d43303
github-actions[bot] Mar 9, 2026
fc7ab30
github-actions[bot] Mar 9, 2026
6fa5897
github-actions[bot] Mar 9, 2026
283d94f
Add applied prospects to roster calc.
nmoschkin Mar 10, 2026
09a2547
github-actions[bot] Mar 10, 2026
ef04b1c
github-actions[bot] Mar 10, 2026
ee4ac1f
github-actions[bot] Mar 10, 2026
035c8c1
github-actions[bot] Mar 10, 2026
13ac467
github-actions[bot] Mar 10, 2026
c8a1da7
github-actions[bot] Mar 10, 2026
7b4c264
github-actions[bot] Mar 11, 2026
8096a1c
Fix the prospective runner.
nmoschkin Mar 11, 2026
9daca6c
Merge branch 'dev-3.3' into beta
nmoschkin Mar 11, 2026
1d40499
github-actions[bot] Mar 11, 2026
efbbc5f
github-actions[bot] Mar 11, 2026
12df340
github-actions[bot] Mar 11, 2026
5a2d1e7
Exclude bonus button
nmoschkin Mar 11, 2026
d5ca9de
Merge branch 'dev-3.3' into beta
nmoschkin Mar 11, 2026
98ead0b
Move Bonus Exclusion down to second row.
nmoschkin Mar 11, 2026
35dfa32
github-actions[bot] Mar 12, 2026
e0a51b9
github-actions[bot] Mar 12, 2026
2a980c9
github-actions[bot] Mar 13, 2026
f4606a7
github-actions[bot] Mar 13, 2026
1edf096
github-actions[bot] Mar 13, 2026
fcf63ba
github-actions[bot] Mar 14, 2026
d574ad4
github-actions[bot] Mar 14, 2026
4eb6ad5
github-actions[bot] Mar 14, 2026
1b4c13e
github-actions[bot] Mar 15, 2026
fc02da9
github-actions[bot] Mar 15, 2026
64b8864
Bump simulations
nmoschkin Mar 15, 2026
ed86c2a
github-actions[bot] Mar 15, 2026
f016ea5
github-actions[bot] Mar 16, 2026
dfb0d98
github-actions[bot] Mar 16, 2026
b0e00e9
github-actions[bot] Mar 16, 2026
25ede8d
github-actions[bot] Mar 16, 2026
9de5409
github-actions[bot] Mar 16, 2026
70c3c31
Bump honor sale dates.
nmoschkin Mar 16, 2026
eb96364
github-actions[bot] Mar 16, 2026
28b007b
github-actions[bot] Mar 17, 2026
fb31381
github-actions[bot] Mar 17, 2026
546d19b
github-actions[bot] Mar 17, 2026
12af2a6
github-actions[bot] Mar 17, 2026
6da9e10
github-actions[bot] Mar 17, 2026
a7d6fe5
github-actions[bot] Mar 17, 2026
14868a4
Owned counts for traits in deep-dive.
nmoschkin Mar 18, 2026
b0d40ab
github-actions[bot] Mar 18, 2026
ad6a83b
github-actions[bot] Mar 18, 2026
6df11a9
github-actions[bot] Mar 18, 2026
4d082e4
Fix FBB one hand tip
ussjohnjay Mar 18, 2026
5432371
Crew retrieval wishlist i18n
ussjohnjay Mar 18, 2026
bbb1352
Owned and needed qol for schematics
nmoschkin Mar 19, 2026
6b51261
Merge branch 'dev-3.3' into beta
nmoschkin Mar 19, 2026
b046c5b
github-actions[bot] Mar 19, 2026
28e6560
github-actions[bot] Mar 19, 2026
e72d82f
github-actions[bot] Mar 19, 2026
d2a37db
github-actions[bot] Mar 20, 2026
bdb478f
github-actions[bot] Mar 20, 2026
c009107
github-actions[bot] Mar 20, 2026
f843d2c
github-actions[bot] Mar 20, 2026
2caf8db
github-actions[bot] Mar 21, 2026
e37978a
github-actions[bot] Mar 21, 2026
d88ad44
github-actions[bot] Mar 21, 2026
c4fce99
github-actions[bot] Mar 22, 2026
2be7436
github-actions[bot] Mar 22, 2026
b886aaf
github-actions[bot] Mar 22, 2026
b14423f
github-actions[bot] Mar 23, 2026
e992c6f
github-actions[bot] Mar 23, 2026
10f4906
github-actions[bot] Mar 23, 2026
388f5a4
github-actions[bot] Mar 23, 2026
63b488a
Update all translations.
nmoschkin Mar 23, 2026
f7b90af
3.3 release notes.
nmoschkin Mar 23, 2026
b6c61e9
github-actions[bot] Mar 24, 2026
75c696b
github-actions[bot] Mar 24, 2026
8aa8cfc
github-actions[bot] Mar 24, 2026
f8976d6
github-actions[bot] Mar 24, 2026
a72aeb9
github-actions[bot] Mar 24, 2026
bee737b
start adding seasonal event shop translations
nmoschkin Mar 24, 2026
e09d4c2
github-actions[bot] Mar 24, 2026
0e41578
github-actions[bot] Mar 25, 2026
5f3ada3
Add Seasonal Event Shop Root.
nmoschkin Mar 25, 2026
a9bc734
Starting the seasonal event shop info pages.
nmoschkin Mar 25, 2026
fdb3d1e
Shop items.
nmoschkin Mar 25, 2026
9761482
Remove W.I.P. from stats
nmoschkin Mar 25, 2026
4401281
Fix Icon
nmoschkin Mar 25, 2026
9da3ff7
Accoutrements for seasonal event shop.
nmoschkin Mar 25, 2026
f94b138
Fix seasonal event w/ player data.
nmoschkin Mar 25, 2026
51567e5
github-actions[bot] Mar 25, 2026
2794e75
Fix season event shop mistranslations.
nmoschkin Mar 25, 2026
77c02fc
Merge branch 'dev-3.3' into beta
nmoschkin Mar 25, 2026
ca989fc
Improvement to store layout
nmoschkin Mar 25, 2026
abde3f8
Added notes to 3.3 changelog
ussjohnjay Mar 25, 2026
e7dfbe5
github-actions[bot] Mar 25, 2026
7c1bb4e
github-actions[bot] Mar 25, 2026
432c3c6
Change "Antimatter Seats" to "Antimatter"
nmoschkin Mar 25, 2026
091589a
Seasonal shop bulletin notes.
nmoschkin Mar 25, 2026
a24e000
Add 'reward' option to AvatarView for ambiguous items.
nmoschkin Mar 25, 2026
b059aad
github-actions[bot] Mar 25, 2026
1089597
github-actions[bot] Mar 26, 2026
73bdd14
github-actions[bot] Mar 26, 2026
a0711dc
github-actions[bot] Mar 26, 2026
2cd2d9e
github-actions[bot] Mar 27, 2026
00720eb
github-actions[bot] Mar 27, 2026
9ebac56
github-actions[bot] Mar 27, 2026
bc17d88
github-actions[bot] Mar 27, 2026
35f4caf
github-actions[bot] Mar 27, 2026
03c0d7d
github-actions[bot] Mar 28, 2026
6473690
github-actions[bot] Mar 28, 2026
fad400c
Activate v3.3 Banner
nmoschkin Mar 28, 2026
06683f6
Formatting and copy edit.
nmoschkin Mar 28, 2026
8b921d5
github-actions[bot] Mar 28, 2026
fa6433a
github-actions[bot] Mar 28, 2026
807dbf1
github-actions[bot] Mar 28, 2026
11d8802
github-actions[bot] Mar 29, 2026
852d97e
github-actions[bot] Mar 29, 2026
e5b7baa
github-actions[bot] Mar 29, 2026
3a27337
github-actions[bot] Mar 29, 2026
add40ed
github-actions[bot] Mar 30, 2026
e8bb28b
github-actions[bot] Mar 30, 2026
549b4a9
github-actions[bot] Mar 30, 2026
51ee88b
github-actions[bot] Mar 30, 2026
a08245f
github-actions[bot] Mar 30, 2026
4f9feda
github-actions[bot] Mar 31, 2026
b7d46e5
github-actions[bot] Mar 31, 2026
714bca3
github-actions[bot] Mar 31, 2026
ad3b13b
github-actions[bot] Mar 31, 2026
c5cfd4d
github-actions[bot] Mar 31, 2026
4942bdb
github-actions[bot] Mar 31, 2026
60ca831
Seasonal event shop tweaking.
nmoschkin Mar 31, 2026
7255206
Update publication notes.
nmoschkin Mar 31, 2026
ae692be
github-actions[bot] Mar 31, 2026
76c82d9
Reformat some notes
ussjohnjay Mar 31, 2026
e13b65a
Merge branch 'beta' of https://github.com/stt-datacore/website into beta
ussjohnjay Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "stt-data-core",
"description": "STT DataCore",
"author": "ussjohnjay/ironyWrit",
"version": "3.2.0",
"version": "3.3.0",
"license": "MIT",
"scripts": {
"check": "tsc --noEmit",
Expand All @@ -27,6 +27,7 @@
"@babel/helpers": "7.27.1",
"@babel/runtime": "7.27.1",
"@nivo/bar": "0.88.0",
"@nivo/boxplot": "^0.99.0",
"@nivo/bump": "0.88.0",
"@nivo/calendar": "0.88.0",
"@nivo/chord": "0.88.0",
Expand Down
132 changes: 132 additions & 0 deletions src/components/base/daterangepicker.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
import React from "react";
import { OptionsPanelFlexColumn } from "../stats/utils";
import { Form } from "semantic-ui-react";
import { DEFAULT_MOBILE_WIDTH } from "../hovering/hoverstat";
import { GlobalContext } from "../../context/globalcontext";

export interface DateRangePickerProps {
startDate?: Date;
endDate?: Date;
setStartDate: (value?: Date) => void;
setEndDate?: (value?: Date) => void;
minDate?: Date;
maxDate?: Date;
}

export const DateRangePicker = (props: DateRangePickerProps) => {
const globalContext = React.useContext(GlobalContext);
const { t } = globalContext.localized;

const flexCol = OptionsPanelFlexColumn;
const isMobile = typeof window !== 'undefined' && window.innerWidth < DEFAULT_MOBILE_WIDTH;
const { minDate, maxDate, startDate, endDate, setStartDate, setEndDate } = props;

const config = React.useMemo(() => {
const startValue = getValue('start');
const startMin = getMinDate('start');
const startMax = getMaxDate('start');
const endValue = getValue('end');
const endMin = getMinDate('end');
const endMax = getMaxDate('end');
return { startValue, startMin, startMax, endValue, endMin, endMax };
}, [minDate, maxDate, startDate, endDate]);

const { startValue, startMin, startMax, endValue, endMin, endMax } = config;

return (<>
<div style={{ ...flexCol, alignItems: 'flex-start', textAlign: 'left' }}>
<span>{t('global.date_start')}</span>
<Form.Input
style={{minWidth: !isMobile ? '14.25em' : undefined}}
type='date'
value={startValue}
min={startMin}
max={startMax}
onChange={(e, { value }) => setValue(value, 'start')}
/>
</div>
{!!setEndDate && <div style={{ ...flexCol, alignItems: 'flex-start', textAlign: 'left' }}>
<span>{t('global.date_end')}</span>
<Form.Input
style={{minWidth: !isMobile ? '14.25em' : undefined}}
type='date'
value={endValue}
min={endMin}
max={endMax}
onChange={(e, { value }) => setValue(value, 'end')}
/>
</div>}
</>);

function getMinDate(widget: 'start' | 'end') {
let d1 = minDate;
let d2 = startDate;
if (widget === 'end' && d2) return d2.toISOString().slice(0, 10);
if (d2 && d1) {
if (d1.getTime() < d2.getTime()) return d1.toISOString().slice(0, 10);
else return d2.toISOString().slice(0, 10);
}
if (widget === 'end') {
if (d1) return d1.toISOString().slice(0, 10);
else if (d2) return d2.toISOString().slice(0, 10);
}
else {
if (d1) return d1.toISOString().slice(0, 10);
}
return undefined;
}

function getMaxDate(widget: 'start' | 'end') {
let d1 = maxDate;
let d2 = endDate;
if (widget === 'start' && d2) return d2.toISOString().slice(0, 10);
if (d2 && d1) {
if (d1.getTime() > d2.getTime()) return d1.toISOString().slice(0, 10);
else return d2.toISOString().slice(0, 10);
}
if (widget === 'start') {
if (d1) return d1.toISOString().slice(0, 10);
else if (d2) return d2.toISOString().slice(0, 10);
}
else {
if (d1) return d1.toISOString().slice(0, 10);
}
return undefined;
}

function getValue(widget: 'start' | 'end') {
if (widget === 'start') {
if (startDate && typeof startDate === 'string') return (new Date(startDate)).toISOString().slice(0, 10);
let s = startDate?.toISOString().slice(0, 10);
return s;
}
else {
if (endDate && typeof endDate === 'string') return (new Date(endDate)).toISOString().slice(0, 10);
let s = endDate?.toISOString().slice(0, 10);
return s;
}
}

function setValue(value: string | undefined, widget: 'start' | 'end') {
let d = value ? new Date(value) : undefined;
if (d && `${d}`.toLowerCase() === 'invalid date') d = undefined;
if (widget === 'start') {
if (d && endDate) {
if (d.getTime() > endDate.getTime()) {
setStartDate(endDate);
return;
}
}
setStartDate(d);
}
else if (setEndDate) {
if (d && startDate) {
if (d.getTime() < startDate.getTime()) {
setEndDate(startDate);
return;
}
}
setEndDate(d);
}
}
}
78 changes: 74 additions & 4 deletions src/components/collections/views/overview.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { Label, Modal, Grid, Segment, Input, Icon, Image, Popup } from 'semantic-ui-react';
import { Label, Modal, Grid, Segment, Input, Icon, Image, Popup, Dropdown, Button } from 'semantic-ui-react';

import { GlobalContext } from '../../../context/globalcontext';
import { MilestoneBuff, PlayerCollection } from '../../../model/player';
Expand All @@ -9,24 +9,70 @@ import { getAllStatBuffs } from '../../../utils/collectionutils';
import { getIconPath } from '../../../utils/assets';
import { Collection } from "../../../model/collections";
import { LazyImage } from '../../lazyimage';
import { gradeToColor, numberToGrade } from '../../../utils/crewutils';
import { OptionsPanelFlexRow } from '../../stats/utils';
import { useStateWithStorage } from '../../../utils/storage';

export const CollectionsOverview = () => {
const globalContext = React.useContext(GlobalContext);

const [search, setSearch] = React.useState('');
const { ITEM_ARCHETYPES, COLLECTIONS, t } = globalContext.localized;
const [modalInstance, setModalInstance] = React.useState(null as PlayerCollection | null);
const { collections } = globalContext.core;

const [sort, setSort] = useStateWithStorage(`${globalContext.player.playerData?.player.dbid || 'default'}_collections/overview/sort_by`, '', { rememberForever: true });
const [dir, setDir] = useStateWithStorage(`${globalContext.player.playerData?.player.dbid || 'default'}_collections/overview/sort_direction`, 1, { rememberForever: true });

const collections = React.useMemo(() => {
const cols = [...globalContext.core.collections];
if (sort) {
if (sort === 'name') {
cols.sort((a, b) => dir * a.name.localeCompare(b.name));
}
if (sort === 'score') {
cols.sort((a, b) => dir * (a.score!.score - b.score!.score));
}
else {
cols.sort((a, b) => dir * (a.score!.details[sort] - b.score!.details[sort]));
}
}
else if (dir === -1) {
cols.reverse();
}
return cols;
}, [sort, dir, globalContext.core.collections]);

if (!collections || collections.length === 0) {
return globalContext.core.spin ? globalContext.core.spin() : <></>;
}

const sortOptions = [
{ key: 'default', value: '', text: t('base.release_date') },
{ key: 'name', value: 'name', text: t('global.name') },
{ key: 'score', value: 'score', text: t('base.score') },
{ key: 'loot_score', value: 'loot_score', text: t('global.loot') },
{ key: 'difficulty', value: 'difficulty', text: t('global.difficulty') },
]

return (
<div>
<div style={{display:'flex', flexDirection: 'row', justifyContent:'flex-start', alignItems: 'center', gap: '0.5em', marginBottom: '1em'}}>
<div style={{display:'flex', flexDirection: 'row', justifyContent:'flex-start', alignItems: 'center', gap: '0.5em', marginBottom: '1em', width: '100%'}}>
<Input placeholder={t('global.search')} value={search} onChange={(e, { value }) => setSearch(value.trim())} />
<Icon style={{margin:0,cursor:'pointer'}} name='close' onClick={() => setSearch('')} />
<div style={{...OptionsPanelFlexRow, flexGrow: 1, justifyContent: 'flex-end', gap: '1em', justifySelf: 'flex-end', textAlign: 'right'}}>
{t('global.sort_by{{:}}')}&nbsp;
<Dropdown
clearable
placeholder={t('base.release_date')}
options={sortOptions}
value={sort}
onChange={(e, { value }) => setSort(value as any)}
/>
<Button
icon={`sort alphabet ${dir === 1 ? 'descending' : 'ascending'}`}
onClick={() => setDir(dir * -1)}
/>
</div>
</div>

<Grid stackable columns={3}>
Expand Down Expand Up @@ -59,8 +105,32 @@ export const CollectionsOverview = () => {
size="large"
// onError={e => e.target.style.visibility = 'hidden'}
/>
<Label attached='bottom'>
<Label attached='bottom'
// style={{minHeight: '4em'}}
>
<div style={{margin:0,padding:0}}>
{formatColString(colInfo.description!)}
</div>
<div style={{margin:0,padding:'0.5em 0 0 0'}}>

{t('base.score{{:}}')}
&nbsp;&nbsp;
<span>
{Math.ceil(colInfo!.score!.score).toLocaleString()}
</span>&nbsp;&mdash;&nbsp;

{t('global.difficulty{{:}}')}
&nbsp;&nbsp;
<span>
{colInfo?.score?.details?.difficulty.toLocaleString()}
</span>&nbsp;&mdash;&nbsp;
{t('global.loot{{:}}')}
&nbsp;&nbsp;
<span>
{colInfo?.score?.details?.loot_score.toLocaleString()}
</span>

</div>
</Label>
</Segment>
</div>
Expand Down
33 changes: 27 additions & 6 deletions src/components/collections/views/progresstable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,21 @@ export const ProgressTable = (props: ProgressTableProps) => {
const { t } = context.localized;
const [rewardFilter, setRewardFilter] = useStateWithStorage<string | undefined>('collectionstool/rewardFilter', undefined);
const [showMaxed, setShowMaxed] = useStateWithStorage('collectionstool/showMaxed', false);
const [showScores, setShowScores] = useStateWithStorage('collectionstool/showScores', true, { rememberForever: true });

const tableConfig: ITableConfigRow[] = [
{ width: 2, column: 'name', title: 'Collection' },
{ width: 1, column: 'owned', title: 'Total Owned', reverse: true },
{ width: 1, column: 'progressPct', title: 'Progress', reverse: true },
{ width: 1, column: 'needed', title: 'Needed', tiebreakers: ['neededPct'] },
{ width: 2, column: 'name', title: t('base.collection') },
{ width: 1, column: 'score.score', title: t('base.score'), reverse: true },
{ width: 1, column: 'score.details.difficulty', title: t('global.difficulty'), reverse: false },
{ width: 1, column: 'score.details.loot_score', title: t('global.loot'), reverse: true },
{ width: 1, column: 'owned', title: t('collections.columns.total_owned'), reverse: true },
{ width: 1, column: 'progressPct', title: t('collections.columns.progress'), reverse: true },
{ width: 1, column: 'needed', title: t('collections.columns.needed'), tiebreakers: ['neededPct'] },
{ width: 3, column: 'totalRewards', title: <span>{t('collections.milestone_rewards')} <Popup trigger={<Icon name='help' />} content={t('collections.milestone_rewards_desc')} /></span>, reverse: true }
];

if (!showScores) {
tableConfig.splice(1, 3);
}
// Rewards will test value against literal symbol string, except when prefixed by:
// = Regular expression against symbol, * Special test case
const rewardOptions = makeRewards(t);
Expand Down Expand Up @@ -56,6 +62,12 @@ export const ProgressTable = (props: ProgressTableProps) => {
checked={showMaxed}
onChange={(e, { checked }) => setShowMaxed(checked)}
/>
<Form.Field
control={Checkbox}
label={t('collections.options.show_scoring_columns')}
checked={showScores}
onChange={(e, { checked }) => setShowScores(checked)}
/>
</Form.Group>
</Form>
</div>
Expand Down Expand Up @@ -128,11 +140,20 @@ export const ProgressTable = (props: ProgressTableProps) => {
<span style={{ fontWeight: 'bolder', fontSize: '1.25em' }}><Link to={`/collections/#${encodeURI(collection.name)}`}>{collection.name}</Link></span>
<br/>{collection.simpleDescription}
</Table.Cell>
{showScores && <>
<Table.Cell>{Math.ceil(collection.score.score).toLocaleString()}</Table.Cell>
<Table.Cell>{collection.score.details.difficulty}</Table.Cell>
<Table.Cell>{collection.score.details.loot_score}</Table.Cell>
</>}
<Table.Cell textAlign='center'>{collection.owned} / {collection.crew.length}</Table.Cell>
<Table.Cell textAlign='center'>{collection.milestone.goal > 0 ? `${collection.progress} / ${collection.milestone.goal}` : 'MAX'}</Table.Cell>
<Table.Cell textAlign='center'>{collection.needed}</Table.Cell>
<Table.Cell textAlign='center'>
<RewardsGrid rewards={rewards} />
<RewardsGrid
wrap
maxCols={4}
rewards={rewards}
/>
</Table.Cell>
</Table.Row>
);
Expand Down
2 changes: 1 addition & 1 deletion src/components/crewpage/crewvariants.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ export const CrewVariants = (props: CrewVariantsProps) => {

function renderGroup(group: Variant, idx: number): JSX.Element {
return (
<Segment key={idx}>
<Segment key={`${group.name}_variant_${idx}`}>
<div style={{display:'flex', justifyContent: 'space-between', alignItems: 'center', flexWrap: 'wrap'}}>
<Header as='h4'>{t('crew_page.variants', { crew: group.name })}</Header>
<Form>
Expand Down
Loading
Loading