diff --git a/components/common/DialogHeader/index.module.scss b/components/common/DialogHeader/index.module.scss index ea8a9da1..684aae59 100644 --- a/components/common/DialogHeader/index.module.scss +++ b/components/common/DialogHeader/index.module.scss @@ -40,6 +40,7 @@ .title { color: var(--text-primary); font-size: $font-xlarge; + line-height: 1.3; h1 { color: var(--text-primary); diff --git a/components/search/SearchModal/index.tsx b/components/search/SearchModal/index.tsx index ca19dfc2..a1e1bea5 100644 --- a/components/search/SearchModal/index.tsx +++ b/components/search/SearchModal/index.tsx @@ -27,6 +27,7 @@ import type { SearchableObject, SearchableObjectArray } from '~types' import styles from './index.module.scss' import CrossIcon from '~public/icons/Cross.svg' import classNames from 'classnames' +import useDidMountEffect from '~utils/useDidMountEffect' interface Props extends DialogProps { send: (object: SearchableObject, position: number) => any @@ -80,6 +81,23 @@ const SearchModal = (props: Props) => { if (props.open !== undefined) setOpen(props.open) }) + useDidMountEffect(() => { + // Only show extra or subaura objects if invoked from those positions + if (extraPositions().includes(props.fromPosition)) { + if (props.object === 'weapons') { + setFilters({ + extra: true, + ...filters, + }) + } else if (props.object === 'summons') { + setFilters({ + subaura: true, + ...filters, + }) + } + } + }, [open]) + function inputChanged(event: React.ChangeEvent) { const text = event.target.value if (text.length) { @@ -185,8 +203,17 @@ const SearchModal = (props: Props) => { // Only show extra or subaura objects if invoked from those positions if (extraPositions().includes(props.fromPosition)) { - if (props.object === 'weapons') filters.extra = true - else if (props.object === 'summons') filters.subaura = true + if (props.object === 'weapons') { + setFilters({ + extra: true, + ...filters, + }) + } else if (props.object === 'summons') { + setFilters({ + subaura: true, + ...filters, + }) + } } setFilters(filters) diff --git a/components/weapon/WeaponConflictModal/index.tsx b/components/weapon/WeaponConflictModal/index.tsx index cb5c750b..ce1fe8d6 100644 --- a/components/weapon/WeaponConflictModal/index.tsx +++ b/components/weapon/WeaponConflictModal/index.tsx @@ -56,7 +56,7 @@ const WeaponConflictModal = (props: Props) => { const series = props.incomingWeapon.series const seriesSlug = t(`series.${mapWeaponSeries(series)}`) - return [2, 3].includes(series) ? ( + return [2, 3, 34].includes(series) ? ( ) : ( diff --git a/components/weapon/WeaponKeySelect/index.tsx b/components/weapon/WeaponKeySelect/index.tsx index f5e26b80..94ef8b03 100644 --- a/components/weapon/WeaponKeySelect/index.tsx +++ b/components/weapon/WeaponKeySelect/index.tsx @@ -32,11 +32,12 @@ const gauphNames = [ { en: 'Ultima Key', jp: 'ガフスキーΩ' }, { en: 'Gate of Omnipotence', jp: 'ガフスキー' }, ] +const providenceNames = [{ en: 'Providence Teluma', jp: 'オリジンステルマ' }] const emptyWeaponKey: WeaponKey = { id: 'no-key', granblue_id: '-1', - series: 0, + series: [0], slot: 0, slug: '', group: 0, @@ -71,7 +72,7 @@ const WeaponKeySelect = React.forwardRef( function filterWeaponKeys(weaponKeys: WeaponKey[]) { // Filter weapon keys based on the series and slot provided return weaponKeys.filter( - (key) => key.series == series && key.slot == slot + (key) => key.series.includes(series) && key.slot == slot ) } @@ -114,7 +115,7 @@ const WeaponKeySelect = React.forwardRef( let name: { [key: string]: string } = {} if (series == 2 && index == 0) name = pendulumNames[0] else if (series == 2 && slot == 1 && index == 1) name = pendulumNames[1] - else if (series === 3) name = telumaNames[0] + else if (series === 3 || series === 34) name = telumaNames[0] else if (series === 17) name = gauphNames[slot] else if (series === 24) name = emblemNames[index] @@ -139,7 +140,7 @@ const WeaponKeySelect = React.forwardRef( const emptyOption = () => { let name = '' if (series === 2) name = pendulumNames[0].en - else if (series === 3) name = telumaNames[0].en + else if (series === 3 || series === 34) name = telumaNames[0].en else if (series === 17) name = gauphNames[slot].en else if (series === 24) name = emblemNames[0].en diff --git a/components/weapon/WeaponModal/index.tsx b/components/weapon/WeaponModal/index.tsx index 18cf3f4b..4bb99219 100644 --- a/components/weapon/WeaponModal/index.tsx +++ b/components/weapon/WeaponModal/index.tsx @@ -155,11 +155,11 @@ const WeaponModal = ({ if (gridWeapon.object.element == 0) object.weapon.element = element - if ([2, 3, 17, 24].includes(gridWeapon.object.series) && weaponKey1) { + if ([2, 3, 17, 24, 34].includes(gridWeapon.object.series) && weaponKey1) { object.weapon.weapon_key1_id = weaponKey1.id } - if ([2, 3, 17].includes(gridWeapon.object.series) && weaponKey2) + if ([2, 3, 17, 34].includes(gridWeapon.object.series) && weaponKey2) object.weapon.weapon_key2_id = weaponKey2.id if (gridWeapon.object.series == 17 && weaponKey3) @@ -353,7 +353,7 @@ const WeaponModal = ({ const keySelect = (

{t('modals.weapon.subtitles.weapon_keys')}

- {[2, 3, 17, 22].includes(gridWeapon.object.series) ? ( + {[2, 3, 17, 22, 34].includes(gridWeapon.object.series) ? (
{gridWeapon.object.element == 0 && elementSelect} - {[2, 3, 17, 24].includes(gridWeapon.object.series) && keySelect} + {[2, 3, 17, 24, 34].includes(gridWeapon.object.series) && keySelect} {gridWeapon.object.ax && axSelect} {gridWeapon.object.awakenings && awakeningSelect}
diff --git a/components/weapon/WeaponUnit/index.tsx b/components/weapon/WeaponUnit/index.tsx index 12b3574e..91d620b2 100644 --- a/components/weapon/WeaponUnit/index.tsx +++ b/components/weapon/WeaponUnit/index.tsx @@ -90,7 +90,7 @@ const WeaponUnit = ({ return ( weapon.ax || weapon.awakenings || - (weapon.series && [2, 3, 17, 22, 24].includes(weapon.series)) + (weapon.series && [2, 3, 17, 22, 24, 34].includes(weapon.series)) ) } diff --git a/data/weaponKeyGroups.tsx b/data/weaponKeyGroups.tsx index dc21f2ea..61535750 100644 --- a/data/weaponKeyGroups.tsx +++ b/data/weaponKeyGroups.tsx @@ -49,4 +49,12 @@ export const weaponKeyGroups: WeaponKeyGroup[] = [ ja: 'エンブレム', }, }, + { + id: 5, + slug: 'providence', + name: { + en: 'Providence Teluma', + ja: 'オリジンステルマ', + }, + }, ] diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 734698e0..731a46d5 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -191,7 +191,7 @@ "title": "Changelog" }, "characters": { - "title": "Character", + "title": "Modify character", "subtitles": { "ring": "Over Mastery", "earring": "Aetherial Mastery", @@ -434,7 +434,7 @@ } }, "weapon": { - "title": "Modify Weapon", + "title": "Modify weapon", "buttons": { "confirm": "Save weapon", "remove": "Remove weapon" diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json index 435a8a19..e3899838 100644 --- a/public/locales/ja/common.json +++ b/public/locales/ja/common.json @@ -190,7 +190,7 @@ "title": "変更ログ" }, "characters": { - "title": "キャラクター", + "title": "キャラクター変更", "subtitles": { "ring": "EXリミットボーナス", "earring": "エーテリアルプラス", diff --git a/types/WeaponKey.d.ts b/types/WeaponKey.d.ts index b56221b7..f1e43256 100644 --- a/types/WeaponKey.d.ts +++ b/types/WeaponKey.d.ts @@ -7,7 +7,7 @@ interface WeaponKey { ja: string } slug: string - series: integer + series: integer[] slot: integer group: integer order: integer diff --git a/types/index.d.ts b/types/index.d.ts index add8e5c5..0214aa39 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -39,7 +39,6 @@ export type DetailsObject = { description?: string raid?: Raid job?: Job - extra?: boolean guidebooks?: string[] visibility?: number } diff --git a/utils/groupWeaponKeys.tsx b/utils/groupWeaponKeys.tsx index c1ad639c..0f3dedb0 100644 --- a/utils/groupWeaponKeys.tsx +++ b/utils/groupWeaponKeys.tsx @@ -7,6 +7,7 @@ export type GroupedWeaponKeys = { teluma: WeaponKey[] gauph: WeaponKey[] emblem: WeaponKey[] + providence: WeaponKey[] } export function groupWeaponKeys(keys: WeaponKey[]) { @@ -21,6 +22,7 @@ export function groupWeaponKeys(keys: WeaponKey[]) { teluma: [], gauph: [], emblem: [], + providence: [], } for (let i = 0; i <= numGroups; i++) {