From 44e35d05051683aa64970bd873dd402483502777 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 31 Jan 2023 04:42:34 -0800 Subject: [PATCH 01/18] Update Updates page --- components/UpdatesPage/index.scss | 150 ++++++++------ components/UpdatesPage/index.tsx | 325 ++++++++++++++++-------------- styles/globals.scss | 12 +- 3 files changed, 259 insertions(+), 228 deletions(-) diff --git a/components/UpdatesPage/index.scss b/components/UpdatesPage/index.scss index 283a27e2..01ce3fd7 100644 --- a/components/UpdatesPage/index.scss +++ b/components/UpdatesPage/index.scss @@ -1,41 +1,48 @@ .Updates.PageContent { - .version { + padding-bottom: $unit-12x; + + .Version { display: flex; flex-direction: column; gap: $unit-2x; - &.content { - .top h3 { + h3, + li, + p { + } + + &.Content { + .Header h3 { color: var(--accent-yellow); } - .update { - display: flex; - flex-direction: column; - gap: $unit-2x; - } - - .characters, - .weapons, - .summons { + .Contents { display: grid; - grid-template-rows: 1fr auto; - gap: $unit; - - & > h4 { - font-weight: $medium; - font-size: $font-regular; - } - } - - .items { - display: grid; - grid-template-columns: 1fr 1fr 1fr; + grid-template-columns: 1fr 1fr; gap: $unit-4x; + + .characters, + .weapons, + .summons { + display: grid; + grid-template-rows: auto 1fr; + gap: $unit; + + & > h4 { + font-weight: $medium; + font-size: $font-regular; + } + + .items { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); + gap: $unit-4x; + } + } } } - .top { + .Header { align-items: baseline; display: flex; gap: $unit-half; @@ -54,32 +61,56 @@ } } - .Notes { - display: grid; - grid-template-columns: repeat(3, minmax(200px, 1fr)); - gap: $unit-2x; + .Contents { + display: flex; + flex-direction: column; + gap: $unit-4x; - li { + &.Bare { display: flex; flex-direction: column; - gap: $unit; + color: var(--text-primary); + list-style-type: disc; + list-style-position: inside; + gap: $unit-half; - h3 { - font-weight: $bold; - font-size: $font-regular; - } - - img { - aspect-ratio: 4 / 3; - background: var(--dialog-bg); - border-radius: $input-corner; - display: block; - width: 100%; - } - - p { - color: var(--text-primary); + li { font-size: 14px; + } + } + + section { + display: flex; + flex-direction: column; + gap: $unit-2x; + + h2 { + margin: 0; + } + } + + .Notes { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + gap: $unit-2x; + + li { + display: flex; + flex-direction: column; + gap: $unit; + + h3 { + font-weight: $bold; + margin-top: $unit-half; + } + + img { + aspect-ratio: 4 / 3; + background: var(--dialog-bg); + border-radius: $input-corner; + display: block; + width: 100%; + } code { background: var(--button-bg); @@ -91,29 +122,14 @@ } } } - } - .Bugs { - display: flex; - flex-direction: column; - list-style-type: disc; - list-style-position: inside; - gap: $unit; - - li { - font-size: $font-regular; + .Bugs { + display: flex; + flex-direction: column; + list-style-type: disc; + gap: $unit-half; + padding-left: $unit-2x; } } } - - .notes { - color: var(--text-primary); - list-style-type: disc; - list-style-position: inside; - - li { - margin-bottom: $unit-half; - font-size: $font-regular; - } - } } diff --git a/components/UpdatesPage/index.tsx b/components/UpdatesPage/index.tsx index 87aadcf3..434006d3 100644 --- a/components/UpdatesPage/index.tsx +++ b/components/UpdatesPage/index.tsx @@ -32,151 +32,170 @@ const UpdatesPage: React.FC = (props: Props) => { return (

{common('about.segmented_control.updates')}

-
-
+
+

1.1.0

-
-

New features

-
    -
  • - {image( - 'Remix parties', - `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, - 'remix', - 'jpg' - )} -

    Remix parties

    -

    - See a team you want to try but don't have Yatima? Now you - can remix teams from other users to showcase substitutes, swap - for items you have, or just give it your own flavor. -

    -
  • -
  • - {image( - 'Transcendence', - `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, - 'transcendence', - 'jpg' - )} -

    Transcendence

    -

    - Now you can set the transcendence stage for Eternals and select - summons (namely, Bahamut). -

    -
  • -
  • - {image( - 'Shields and Manatura', - `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, - 'accessories', - 'jpg' - )} -

    Shields and Manatura

    -

    - When using Paladin or Manadiver, you can set their respective - Shield or Manatura from the button next to the main character. -

    -
  • -
  • - {image( - 'Character Mastery', - `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, - 'mastery', - 'jpg' - )} -

    Character Mastery

    -

    - You can now add individual values for your character's - rings, earrings, and awakenings. Make sure to set your - Perpetuity Rings! -

    -
  • -
  • - {image( - 'Updated team mechanics', - `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, - 'mechanics', - 'jpg' - )} -

    Updated team mechanics

    -

    Sorry, each party is only big enough for one Beelzebub.

    -
  • -
  • - {image( - 'R Characters', - `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, - 'rare', - 'jpg' - )} -

    R Characters

    -

    - R Characters have been added to the database for your - mem—Proving Grounds compositions. -

    -
  • -
  • - {image( - 'Unique URLs for team tabs', - `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, - 'urls', - 'jpg' - )} -

    Unique URLs for team tabs

    -

    - You can now link to individual tabs directly. The site will do - it for you when you copy a URL, or you can append{' '} - /characters, /weapons or{' '} - /summons manually. -

    -
  • -
  • - {image( - 'Redesigned navigation', - `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, - 'nav', - 'jpg' - )} -

    Redesigned navigation

    -

    - The top-navigation has been slightly redesigned. Click the party - name to copy its URL! -

    -
  • -
  • - {image( - 'Update toasts', - `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, - 'toasts', - 'jpg' - )} -

    Update toasts

    -

    - The site will now show an update in the bottom-right corner when - new features or content is added. -

    -
  • -
-
-
-

Bug fixes

-
    -
  • - Fixed a bug that caused users to be logged out whenever they - restarted their browser -
  • -
  • Fixed a bug that caused Dark Opus weapons to disappear
  • -
-
+
+
+

New features

+
    +
  • + {image( + 'Remix parties', + `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, + 'remix', + 'jpg' + )} +

    Remix parties

    +

    + See a team you want to try but don't have Yatima? Now you + can remix teams from other users to showcase substitutes, swap + for items you have, or just give it your own flavor. +

    +
  • +
  • + {image( + 'Edit parties without an account', + `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, + 'unauth', + 'jpg' + )} +

    No account editing

    +

    + Now you can edit parties you create later on, even if you + don't make an account. You still won't have a + profile, so make sure to bookmark them! +

    +
  • +
  • + {image( + 'Transcendence', + `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, + 'transcendence', + 'jpg' + )} +

    Transcendence

    +

    + Now you can set the transcendence stage for Eternals and + select summons (namely, Bahamut). +

    +
  • +
  • + {image( + 'Shields and Manatura', + `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, + 'accessories', + 'jpg' + )} +

    Shields and Manatura

    +

    + When using Paladin or Manadiver, you can set their respective + Shield or Manatura from the button next to the main character. +

    +
  • +
  • + {image( + 'Character Mastery', + `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, + 'mastery', + 'jpg' + )} +

    Character Mastery

    +

    + You can now add individual values for your character's + rings, earrings, and awakenings. Make sure to set your + Perpetuity Rings! +

    +
  • +
  • + {image( + 'Updated team mechanics', + `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, + 'mechanics', + 'jpg' + )} +

    Updated team mechanics

    +

    Sorry, each party is only big enough for one Beelzebub.

    +
  • +
  • + {image( + 'R Characters', + `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, + 'rare', + 'jpg' + )} +

    R Characters

    +

    + R Characters have been added to the database for your + mem—Proving Grounds compositions. +

    +
  • +
  • + {image( + 'Unique URLs for team tabs', + `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, + 'urls', + 'jpg' + )} +

    Unique URLs for team tabs

    +

    + You can now link to individual tabs directly. The site will do + it for you when you copy a URL, or you can append{' '} + /characters, /weapons or{' '} + /summons manually. +

    +
  • +
  • + {image( + 'Redesigned navigation', + `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, + 'nav', + 'jpg' + )} +

    Redesigned navigation

    +

    + The top-navigation has been slightly redesigned. Click the + party name to copy its URL! +

    +
  • +
  • + {image( + 'Update toasts', + `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, + 'toasts', + 'jpg' + )} +

    Update toasts

    +

    + The site will now show an update in the bottom-right corner + when new features or content is added. +

    +
  • +
+
+
+

Bug fixes

+
    +
  • + Fixed a bug that caused users to be logged out whenever they + restarted their browser +
  • +
  • + Fixed a bug that caused Dark Opus weapons to permanently + disappear when adding them to a party that already had one +
  • +
+
+
-
-
+
+

2023-01 Flash Gala

-
+

New characters

@@ -205,12 +224,12 @@ const UpdatesPage: React.FC = (props: Props) => {
-
-
+
+

2023-01 Uncap

-
+

Updated characters

@@ -224,24 +243,24 @@ const UpdatesPage: React.FC = (props: Props) => {
-
-
+
+

1.0.1

-
    +
    • Extra party fields: Full Auto, Clear Time, and more
    • Support for Youtube short URLs
    • Responsive grids and lots of other mobile fixes
    • Many other bug fixes
-
-
+
+

2022-12 Legend Festival

-
+

New characters

@@ -278,12 +297,12 @@ const UpdatesPage: React.FC = (props: Props) => {
-
-
+
+

2022-12 Flash Gala

-
+

New characters

@@ -312,12 +331,12 @@ const UpdatesPage: React.FC = (props: Props) => {
-
-
+
+

1.0.0

-
    +
    • First release!
    • You can embed Youtube videos now
    • Better clicking - right-click and open in a new tab
    • diff --git a/styles/globals.scss b/styles/globals.scss index b4b59dfb..7913fe5c 100644 --- a/styles/globals.scss +++ b/styles/globals.scss @@ -138,15 +138,11 @@ select { margin-bottom: $unit * 3; } - p { - color: var(--text-secondary); - font-size: $font-regular; + p, + li { + color: var(--text-primary); + font-size: 14px; line-height: 1.3; - margin-bottom: $unit; - - &:last-of-type { - margin-bottom: 0; - } } .LinkItem { From 607a10bfaeaf591749e7c94bff4d9a1747c3241a Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 31 Jan 2023 04:48:55 -0800 Subject: [PATCH 02/18] WIP About page updates --- components/AboutPage/index.scss | 51 +++++++++++++++++++++ components/AboutPage/index.tsx | 79 +++++++++++++++++++-------------- 2 files changed, 96 insertions(+), 34 deletions(-) diff --git a/components/AboutPage/index.scss b/components/AboutPage/index.scss index 38d21a98..5549f51c 100644 --- a/components/AboutPage/index.scss +++ b/components/AboutPage/index.scss @@ -1,4 +1,50 @@ .About.PageContent { + $width: 520px; + padding-bottom: $unit-12x; + + section { + display: flex; + flex-direction: column; + position: relative; + gap: $unit-2x; + + .Hero { + position: absolute; + width: 40vw; + height: 80vh; + right: $unit-8x * -1; + top: $unit-4x * -1; + background-image: linear-gradient( + 90deg, + rgba(245, 245, 245, 1) 0%, + rgba(245, 245, 245, 0) 50%, + rgba(245, 245, 245, 0) 70%, + rgba(245, 245, 245, 1) 100% + ), + linear-gradient( + rgba(245, 245, 245, 1) 0%, + rgba(245, 245, 245, 0) 40%, + rgba(245, 245, 245, 0) 78%, + rgba(245, 245, 245, 1) 100% + ), + url('https://prd-game-a-granbluefantasy.akamaized.net/assets_en/img/sp/top/bg/bg_23.jpg'); + } + + p { + font-size: $font-medium; + max-width: $width; + line-height: 1.35; + z-index: 2; + } + + h2 { + font-weight: $bold; + font-size: $font-medium; + margin: 0; + max-width: $width; + z-index: 2; + } + } .Links { display: grid; gap: $unit; @@ -8,4 +54,9 @@ div.LinkItem { margin-top: $unit-2x; } + + .LinkItem { + background: var(--dialog-bg); + max-width: calc($width / 3 * 2); + } } diff --git a/components/AboutPage/index.tsx b/components/AboutPage/index.tsx index 0e3c546b..f01437a4 100644 --- a/components/AboutPage/index.tsx +++ b/components/AboutPage/index.tsx @@ -18,8 +18,8 @@ const AboutPage: React.FC = (props: Props) => {

      {common('about.segmented_control.about')}

      -

      - Granblue.team is a tool to save and share team comps for{' '} +

      + Granblue.team is a tool to save and share team compositions for{' '} = (props: Props) => { > Granblue Fantasy - . -

      + , a social RPG from Cygames. +

      +

      - Start adding to a team and a URL will be created for you to share - wherever you like, no account needed. + To get started, all you have to do is add an item to a team and a URL + will be created for you to share wherever you like, no account needed.

      +

      - However, if you do make an account, you can save any teams you find - for future reference and keep all of your teams together in one place. + If you do make an account, you can save any teams you find for future + reference and keep all of your teams together in one place.

      + +

      Feedback

      -

      - This is an evolving project so feedback and suggestions are greatly - appreciated! -

      If you have a feature request, would like to report a bug, or are - enjoying the tool and want to say thanks, come hang out in Discord! + enjoying the tool and want to say thanks, come hang out in Discord.

      +

      Feedback and suggestions are greatly appreciated!

      = (props: Props) => {

      Credits

      - Granblue.team was built by{' '} + Granblue.team was built and is maintained by{' '} @jedmund - {' '} - with a lot of help from{' '} + + . +

      +

      + Many thanks to{' '} = (props: Props) => { > @tarngerine - . + , who both provided a lot of help and advice as I was ramping up.

      - Many thanks also go to Disinfect, Slipper, Jif, Bless, 9highwind, and - everyone else in{' '} + Many thanks also go to everyone in{' '} = (props: Props) => { > Fireplace {' '} - that helped with bug testing and feature requests. (P.S. We're - recruiting!) And yoey, but he won't join our crew. + and the granblue-tools Discord for all of their help with with bug + testing, feature requests, and more support. (P.S. We're + recruiting!)

      Contributing

      -

      - This app is open source and licensed under{' '} - - GNU AGPLv3 - - . Plainly, that means you can download the source, modify it, and - redistribute it if you attribute this project, use the same license, - and keep it open source. You can contribute on Github. -

      +
      • @@ -158,6 +150,25 @@ const AboutPage: React.FC = (props: Props) => {
      +
      +

      License

      +

      + This app is open source and licensed under{' '} + + GNU AGPLv3 + + . +

      +

      + Plainly, that means you can download the source, modify it, and + redistribute it as long as you attribute this project, use the same + license, and keep your derivative work open source as well. +

      +
      ) } From a2c81de751eca7f6e22cb2de3e81751b7a2694de Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 31 Jan 2023 17:47:39 -0800 Subject: [PATCH 03/18] Adjust hero position, fix typos, add styles --- components/AboutPage/index.scss | 54 +++++++++++++++++++++++++------ components/AboutPage/index.tsx | 15 ++++++--- components/RoadmapPage/index.scss | 9 ++---- components/UpdatesPage/index.tsx | 2 +- styles/globals.scss | 34 +++++++++++++++++-- 5 files changed, 88 insertions(+), 26 deletions(-) diff --git a/components/AboutPage/index.scss b/components/AboutPage/index.scss index 5549f51c..3d073192 100644 --- a/components/AboutPage/index.scss +++ b/components/AboutPage/index.scss @@ -7,27 +7,62 @@ flex-direction: column; position: relative; gap: $unit-2x; + z-index: 5; .Hero { position: absolute; width: 40vw; height: 80vh; - right: $unit-8x * -1; + right: -18vw; top: $unit-4x * -1; + z-index: 1; background-image: linear-gradient( 90deg, - rgba(245, 245, 245, 1) 0%, - rgba(245, 245, 245, 0) 50%, - rgba(245, 245, 245, 0) 70%, - rgba(245, 245, 245, 1) 100% + rgba(245, 245, 245, 1) 5%, + rgba(245, 245, 245, 0.2) 50%, + rgba(245, 245, 245, 0.2) 70%, + rgba(245, 245, 245, 1) 95% ), linear-gradient( - rgba(245, 245, 245, 1) 0%, - rgba(245, 245, 245, 0) 40%, - rgba(245, 245, 245, 0) 78%, - rgba(245, 245, 245, 1) 100% + rgba(245, 245, 245, 1) 5%, + rgba(245, 245, 245, 0.4) 40%, + rgba(245, 245, 245, 0.4) 78%, + rgba(245, 245, 245, 1) 95% ), url('https://prd-game-a-granbluefantasy.akamaized.net/assets_en/img/sp/top/bg/bg_23.jpg'); + + @include breakpoint(tablet) { + right: -14vw; + width: 60vw; + } + + @include breakpoint(phone) { + right: $unit-2x * -1; + width: 80vw; + + &::before { + content: ' '; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient( + 90deg, + rgba(245, 245, 245, 1) 0%, + rgba(245, 245, 245, 0) 50%, + rgba(245, 245, 245, 0) 70%, + rgba(245, 245, 245, 1) 95% + ), + linear-gradient( + rgba(245, 245, 245, 1) 0%, + rgba(245, 245, 245, 0) 40%, + rgba(245, 245, 245, 0) 78%, + rgba(245, 245, 245, 1) 95% + ); + z-index: 3; + } + } } p { @@ -56,7 +91,6 @@ } .LinkItem { - background: var(--dialog-bg); max-width: calc($width / 3 * 2); } } diff --git a/components/AboutPage/index.tsx b/components/AboutPage/index.tsx index f01437a4..54579976 100644 --- a/components/AboutPage/index.tsx +++ b/components/AboutPage/index.tsx @@ -50,7 +50,7 @@ const AboutPage: React.FC = (props: Props) => { enjoying the tool and want to say thanks, come hang out in Discord.

      Feedback and suggestions are greatly appreciated!

      -
      +
      = (props: Props) => { Fireplace {' '} and the granblue-tools Discord for all of their help with with bug - testing, feature requests, and more support. (P.S. We're + testing, feature requests, and moral support. (P.S. We're recruiting!)

      @@ -117,8 +117,13 @@ const AboutPage: React.FC = (props: Props) => {

      Contributing

      +

      + If you know how to program, this app is completely open-source. + There's an abundance of features to build and bugs to fix, so + help is always greatly appreciated! +

        -
      • +
      • = (props: Props) => {
      • -
      • +
      • = (props: Props) => {

        License

        - This app is open source and licensed under{' '} + This app is licensed under{' '} = (props: Props) => { 'unauth', 'jpg' )} -

        No account editing

        +

        Accountless team editing

        Now you can edit parties you create later on, even if you don't make an account. You still won't have a diff --git a/styles/globals.scss b/styles/globals.scss index 7913fe5c..739f76e2 100644 --- a/styles/globals.scss +++ b/styles/globals.scss @@ -147,20 +147,47 @@ select { .LinkItem { $diameter: $unit-6x; + align-items: center; + background: var(--dialog-bg); border: 1px solid var(--link-item-bg); border-radius: $card-corner; + display: flex; + min-height: 82px; + transition: background $duration-zoom ease-in, + transform $duration-zoom ease-in; &:hover { - background-color: var(--link-item-bg); + background: var(--link-item-bg); + color: var(--text-primary); - svg { - fill: var(--link-item-image-color-hover); + .ShareIcon { + fill: var(--text-primary); + transform: translate($unit-half, calc(($unit * -1) / 2)); } } + &.Github { + .Left svg { + background: white; + border-radius: calc($diameter / 2); + } + + &:hover { + .Left svg { + fill: #6e5494; + } + } + } + + &.Discord:hover .Left svg { + fill: #5865f2; + } + a { display: flex; + justify-content: space-between; padding: $unit-2x; + width: 100%; &:hover { text-decoration: none; @@ -183,6 +210,7 @@ select { fill: var(--link-item-image-color); width: $diameter; height: auto; + transition: fill $duration-zoom ease-in; &.ShareIcon { width: $unit-4x; From b36dcb7b6f6f9f7f22995e81db373ac36d2a31de Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 31 Jan 2023 17:59:57 -0800 Subject: [PATCH 04/18] Fix optional error --- components/JobSection/index.tsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/components/JobSection/index.tsx b/components/JobSection/index.tsx index f88a4016..e9323597 100644 --- a/components/JobSection/index.tsx +++ b/components/JobSection/index.tsx @@ -197,10 +197,14 @@ const JobSection = (props: Props) => { /> ) : (

        - {party.job.name[locale]} + {party.job ? ( + {party.job.name[locale]} + ) : ( + '' + )}

        {party.job ? party.job.name[locale] : t('no_job')}

        )} From 013d6d5bfbe5126f9fdf131675f290dc03b528b9 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 31 Jan 2023 18:01:22 -0800 Subject: [PATCH 05/18] Add new button back --- components/Header/index.tsx | 59 +++++++++++++++++------------------ public/locales/en/common.json | 1 + public/locales/ja/common.json | 1 + 3 files changed, 31 insertions(+), 30 deletions(-) diff --git a/components/Header/index.tsx b/components/Header/index.tsx index 35af54c6..2a9adfe5 100644 --- a/components/Header/index.tsx +++ b/components/Header/index.tsx @@ -1,6 +1,5 @@ import React, { useEffect, useState } from 'react' import { subscribe, useSnapshot } from 'valtio' -import { subscribeKey } from 'valtio/utils' import { deleteCookie } from 'cookies-next' import { useRouter } from 'next/router' import { Trans, useTranslation } from 'next-i18next' @@ -31,6 +30,7 @@ import ArrowIcon from '~public/icons/Arrow.svg' import LinkIcon from '~public/icons/Link.svg' import MenuIcon from '~public/icons/Menu.svg' import RemixIcon from '~public/icons/Remix.svg' +import PlusIcon from '~public/icons/Add.svg' import SaveIcon from '~public/icons/Save.svg' import './index.scss' @@ -114,19 +114,9 @@ const Header = () => { } // Methods: Actions - function handleNewParty(event: React.MouseEvent, path: string) { + function handleNewTeam(event: React.MouseEvent) { event.preventDefault() - - // Clean state - const resetState = clonedeep(initialAppState) - Object.keys(resetState).forEach((key) => { - appState[key] = resetState[key] - }) - - // Push the root URL - router.push(path) - - // Close right menu + newTeam() closeRightMenu() } @@ -165,6 +155,17 @@ const Header = () => { return false } + function newTeam() { + // Clean state + const resetState = clonedeep(initialAppState) + Object.keys(resetState).forEach((key) => { + appState[key] = resetState[key] + }) + + // Push the root URL + router.push('/new') + } + function remixTeam() { setOriginalName(partySnapshot.name ? partySnapshot.name : t('no_title')) @@ -281,6 +282,20 @@ const Header = () => { ) } + const newButton = () => { + return ( + +
      -

      New characters

      +

      {updates('labels.characters')}

      = (props: Props) => {
      -

      New weapons

      +

      {updates('labels.weapons')}

      = (props: Props) => {
      -

      Updated characters

      +

      {updates('labels.uncaps')}

      = (props: Props) => {
        -
      • Extra party fields: Full Auto, Clear Time, and more
      • -
      • Support for Youtube short URLs
      • -
      • Responsive grids and lots of other mobile fixes
      • -
      • Many other bug fixes
      • + {[...Array(versionUpdates['1.0.1'])].map((e, i) => ( +
      • {updates(`versions.1.0.1.features.${i}`)}
      • + ))}
      @@ -262,7 +157,7 @@ const UpdatesPage: React.FC = (props: Props) => {
      -

      New characters

      +

      {updates('labels.characters')}

      = (props: Props) => {
      -

      New weapons

      +

      {updates('labels.weapons')}

      = (props: Props) => {
      -

      New summons

      +

      {updates('labels.summons')}

      @@ -304,7 +199,7 @@ const UpdatesPage: React.FC = (props: Props) => {
      -

      New characters

      +

      {updates('labels.characters')}

      = (props: Props) => {
      -

      New weapons

      +

      {updates('labels.weapons')}

      = (props: Props) => {
        -
      • First release!
      • -
      • You can embed Youtube videos now
      • -
      • Better clicking - right-click and open in a new tab
      • -
      • Manually set dark mode in Account Settings
      • -
      • Lots of bugs squashed
      • + {[...Array(versionUpdates['1.0.0'])].map((e, i) => ( +
      • {updates(`versions.1.0.0.features.${i}`)}
      • + ))}
      diff --git a/pages/about.tsx b/pages/about.tsx index a2c98ef2..b9da10f6 100644 --- a/pages/about.tsx +++ b/pages/about.tsx @@ -165,7 +165,7 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex // Fetch and organize raids return { props: { - ...(await serverSideTranslations(locale, ['common', 'about'])), + ...(await serverSideTranslations(locale, ['common', 'about', 'updates'])), // Will be passed to the page component as props }, } diff --git a/public/locales/en/updates.json b/public/locales/en/updates.json new file mode 100644 index 00000000..21b92b9a --- /dev/null +++ b/public/locales/en/updates.json @@ -0,0 +1,81 @@ +{ + "labels": { + "characters": "New characters", + "weapons": "New weapons", + "summons": "New summons", + "uncaps": "New uncaps", + "features": "New features" + }, + "events": { + "legfest": "Legend Festival", + "flash": "Flash Gala", + "uncap": "Uncap" + }, + "versions": { + "1.1.0": { + "features": [ + { + "title": "Remix parties", + "blurb": "See a team you want to try but don't have Yatima? Now you can remix teams from other users to showcase substitutes, swap for items you have, or just give it your own flavor." + }, + { + "title": "Accountless team editing", + "blurb": "Now you can edit parties you create later on, even if you don't make an account. You still won't have a profile, so make sure to bookmark them!" + }, + { + "title": "Transcendence", + "blurb": "Now you can set the transcendence stage for Eternals and select summons (namely, Bahamut)." + }, + { + "title": "Shields and Manatura", + "blurb": "When using Paladin or Manadiver, you can set their respective Shield or Manatura from the button next to the main character." + }, + { + "title": "Character Mastery", + "blurb": "You can now add individual values for your character's rings, earrings, and awakenings. Make sure to set your Perpetuity Rings!" + }, + { + "title": "Updated team mechanics", + "blurb": "Sorry, each party is only big enough for one Beelzebub." + }, + { + "title": "R Characters", + "blurb": "R Characters have been added to the database for your mem—Proving Grounds compositions." + }, + { + "title": "Unique URLs for team tabs", + "blurb": "You can now link to individual tabs directly. The site will do it for you when you copy a URL, or you can append /characters, /weapons or /summons manually." + }, + { + "title": "Redesigned navigation", + "blurb": "The top-navigation has been slightly redesigned. Click the party name to copy its URL!" + }, + { + "title": "Update toasts", + "blurb": "The site will now show an update in the bottom-right corner when new features or content is added." + } + ], + "bugs": [ + "Fixed a bug that caused users to be logged out whenever they restarted their browser", + "Fixed a bug that caused Dark Opus weapons to permanently disappear when adding them to a party that already had one" + ] + }, + "1.0.1": { + "features": [ + "Extra party fields: Full Auto, Clear Time, and more", + "Support for Youtube short URLs", + "Responsive grids and lots of other mobile fixes", + "Many other bug fixes" + ] + }, + "1.0.0": { + "features": [ + "First release!", + "You can embed Youtube videos now", + "Better click behavior: right-click to open in a new tab", + "Manually set dark mode in Account Settings", + "Lots of bugs squashed" + ] + } + } +} diff --git a/public/locales/ja/updates.json b/public/locales/ja/updates.json new file mode 100644 index 00000000..653df021 --- /dev/null +++ b/public/locales/ja/updates.json @@ -0,0 +1,81 @@ +{ + "labels": { + "characters": "新キャラクター", + "weapons": "新武器", + "summons": "新召喚石", + "uncaps": "新上限解放", + "features": "新機能" + }, + "events": { + "legfest": "レジェンドフェス", + "flash": "グランデフェス", + "uncap": "上限解放" + }, + "versions": { + "1.1.0": { + "features": [ + { + "title": "編成をリミックス", + "blurb": "見つけた編成をリミックスができるようになりました。編成をリミックスしたら、アイテムの代用を入れたり、自分の感想で作り直したりすることができます。" + }, + { + "title": "アカウントなし編成改正", + "blurb": "登録しなくても作成した編成を後で改正することができるようになりました。プロフィールはまだないので是非URLをブックマークしてください!" + }, + { + "title": "限界超越", + "blurb": "十天衆、またはバハムートの限界超越レベルを入力することができるようになりました。" + }, + { + "title": "盾やマナベリ装備可能", + "blurb": "ジョブはパラディンかマナダイバーの時、主人公の左にあるのボタンで盾やマナベリを装備できるようになりました。" + }, + { + "title": "キャラのリミットボーナス", + "blurb": "キャラクターの指輪・耳飾り・覚醒のボーナスを設定できるようになりました。久遠の指輪も設定しましょう!" + }, + { + "title": "編成ルール擁護", + "blurb": "編成のキャラクター・武器・召喚石の制限を実施されました。" + }, + { + "title": "Rキャラ追加", + "blurb": "色々のコンテンツで使用しそうなのでRキャラが追加されました。" + }, + { + "title": "編成タブごとのURL", + "blurb": "編成のタブに直接のリンクを作れるようになりました。URLをコピーする時にも直接のリンクになります。" + }, + { + "title": "トップナビのリニューアル", + "blurb": "トップナビゲーションがちょっとリニューアルされました。編成名をクリックするとURLをコピーできます。" + }, + { + "title": "アップデート告知", + "blurb": "サイトのアップデートの時に右下に告知が表示するようになりました。" + } + ], + "bugs": [ + "ブラウザを再起動するとログアウトしてしまう不具合を修正", + "終末武器をすでに装備している編成に追加すると、永久に消えてしまう不具合を修正" + ] + }, + "1.0.1": { + "features": [ + "編成にフルオート、討伐時間などを入力できるようになりました", + "YouTubeの短いURLを入力できるようになりましたSupport for Youtube short URLs", + "モバイル向けのビジュアルバグを多め修正", + "その他のバグを多め修正" + ] + }, + "1.0.0": { + "features": [ + "初アップデート!", + "YouTubeの動画を埋め込めるようになりました", + "右クリックで新しいタブでいろいろのリンクを開けるようになりました", + "アカウント設定でダークモードが設定するようになりました", + "その他のバグを多め修正" + ] + } + } +} From 18820b54f36e404b7b0d0fcde65b945ecee74173 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 31 Jan 2023 21:39:33 -0800 Subject: [PATCH 14/18] Translate new roadmap --- components/RoadmapPage/index.scss | 4 ++ components/RoadmapPage/index.tsx | 45 +++++++-------------- public/locales/en/about.json | 65 +++++++++++++++---------------- public/locales/ja/about.json | 65 +++++++++++++++---------------- 4 files changed, 80 insertions(+), 99 deletions(-) diff --git a/components/RoadmapPage/index.scss b/components/RoadmapPage/index.scss index 245d7b41..90f9ca73 100644 --- a/components/RoadmapPage/index.scss +++ b/components/RoadmapPage/index.scss @@ -1,4 +1,5 @@ .Roadmap.PageContent { + padding-bottom: $unit-12x; h3.priority { font-weight: $medium; font-size: $font-large; @@ -83,6 +84,9 @@ ul { color: var(--text-primary); list-style-type: none; + display: grid; + grid-template-columns: 1fr 1fr; + gap: $unit-3x; li { display: flex; diff --git a/components/RoadmapPage/index.tsx b/components/RoadmapPage/index.tsx index e9fbab81..09a85b7d 100644 --- a/components/RoadmapPage/index.tsx +++ b/components/RoadmapPage/index.tsx @@ -9,17 +9,18 @@ import GithubIcon from '~public/icons/github.svg' import './index.scss' -interface Props {} +const ROADMAP_ITEMS = 6 -const RoadmapPage: React.FC = (props: Props) => { +const RoadmapPage = () => { const { t: common } = useTranslation('common') - const { t: roadmap } = useTranslation('roadmap') + const { t: about } = useTranslation('about') + return (

      {common('about.segmented_control.roadmap')}

      -

      {roadmap('blurb')}

      -

      {roadmap('link.intro')}

      +

      {about('roadmap.blurb')}

      +

      {about('roadmap.link.intro')}

      = (props: Props) => { >
      -

      {roadmap('link.title')}

      +

      {about('roadmap.link.title')}

      @@ -38,32 +39,14 @@ const RoadmapPage: React.FC = (props: Props) => {
      -

      {roadmap('subtitle')}

      +

      {about('roadmap.subtitle')}

        -
      • -

        {roadmap('roadmap.item1.title')}

        -

        {roadmap('roadmap.item1.description')}

        -
      • -
      • -

        {roadmap('roadmap.item2.title')}

        -

        {roadmap('roadmap.item2.description')}

        -
      • -
      • -

        {roadmap('roadmap.item3.title')}

        -

        {roadmap('roadmap.item3.description')}

        -
      • -
      • -

        {roadmap('roadmap.item4.title')}

        -

        {roadmap('roadmap.item4.description')}

        -
      • -
      • -

        {roadmap('roadmap.item5.title')}

        -

        {roadmap('roadmap.item5.description')}

        -
      • -
      • -

        {roadmap('roadmap.item6.title')}

        -

        {roadmap('roadmap.item6.description')}

        -
      • + {[...Array(ROADMAP_ITEMS)].map((e, i) => ( +
      • +

        {about(`roadmap.items.${i}.title`)}

        +

        {about(`roadmap.items.${i}.description`)}

        +
      • + ))}
      diff --git a/public/locales/en/about.json b/public/locales/en/about.json index 7be9285f..253ba4e1 100644 --- a/public/locales/en/about.json +++ b/public/locales/en/about.json @@ -12,13 +12,6 @@ }, "button": "Learn more" }, - "title": "Roadmap", - "subtitle": "Next update", - "blurb": "The next major update is planned to come out in late-March to early-April, before the next Unite and Fight. I want to try to do some other things for a bit since I haven't been in a great place mentally, so development might be slower.", - "link": { - "intro": "You can see the full roadmap on Github below:", - "title": "granblue.team Roadmap" - }, "about": { "subtitle": "Granblue.team is a tool to save and share team compositions for <2>Granblue Fantasy, a social RPG from Cygames.", "explanation": [ @@ -51,33 +44,37 @@ } }, "roadmap": { - "item1": { - "title": "Account promotion", - "description": "Users that have created teams without an account will be able to create an account and retain access to all of their teams" + "subtitle": "Next update", + "blurb": "The next major update is planned to come out in late-March to early-April, before the next Unite and Fight. I want to try to do some other things for a bit since I haven't been in a great place mentally, so development might be slower.", + "link": { + "intro": "You can see the full roadmap on Github below:", + "title": "granblue.team Roadmap" }, - "item2": { - "title": "Better filters", - "description": "You'll be able to filter by team parameters like Full Auto or how many button clicks, and also filter out teams with no name, teams from anonymous users, and so on" - }, - "item3": { - "title": "Private and Unlisted teams", - "description": "If you just want to make a team for your own memo or to share with your crew and no one else, this update is for you" - }, - "item4": { - "title": "Markdown in team descriptions", - "description": "If you're writing a lot of text in the description box, this update will give you tools to format it better" - }, - "item5": { - "title": "Mention items", - "description": "This update will allow you to mention individual items, like @Ixaba or @Charlotta (Grand), to give more context or suggest substitutions in your team descriptions." - }, - "item6": { - "title": "Embed tweets in team descriptions", - "description": "Similar to embedding Youtube videos, this update will allow you to paste the link to a tweet and have it automatically embed in the description" - }, - "item7": { - "title": "", - "description": "" - } + "items": [ + { + "title": "Account promotion", + "description": "Users that have created teams without an account will be able to create an account and retain access to all of their teams" + }, + { + "title": "Better filters", + "description": "You'll be able to filter by team parameters like Full Auto or how many button clicks, and also filter out teams with no name, teams from anonymous users, and so on" + }, + { + "title": "Private and Unlisted teams", + "description": "If you just want to make a team for your own memo or to share with your crew and no one else, this update is for you" + }, + { + "title": "Mention items", + "description": "This update will allow you to mention individual items, like @Ixaba or @Charlotta (Grand), to give more context or suggest substitutions in your team descriptions." + }, + { + "title": "Markdown in team descriptions", + "description": "If you're writing a lot of text in the description box, this update will give you tools to format it better" + }, + { + "title": "Embed tweets in team descriptions", + "description": "Similar to embedding Youtube videos, this update will allow you to paste the link to a tweet and have it automatically embed in the description" + } + ] } } diff --git a/public/locales/ja/about.json b/public/locales/ja/about.json index 7f7faf03..b75e2996 100644 --- a/public/locales/ja/about.json +++ b/public/locales/ja/about.json @@ -12,13 +12,6 @@ }, "button": "詳細をみる" }, - "title": "ロードマップ", - "subtitle": "次回更新予定", - "blurb": "1月下旬〜2月上旬に更新する予定があります。火古戦場に2000位を狙っており、その後は仕事に戻るので開発はちょっとだけ遅くなります。", - "link": { - "intro": "全部のロードマップは以下のGithubリンクで:", - "title": "granblue.teamのロードマップ" - }, "about": { "subtitle": "Granblue.teamは<2>グランブルーファンタジーの編成を作成・保存・共有するサイトです。", "explanation": [ @@ -51,33 +44,37 @@ } }, "roadmap": { - "item1": { - "title": "編成をリミックス", - "description": "面白い編成を見出したら、リミックス機能で自分のアカウントにコピーし、アイテムを変えて新らたな編成を作れる" + "subtitle": "次回更新予定", + "blurb": "次の古戦場の開場前3月下旬〜4月上旬に更新する予定があります。一生懸命頑張りましたのでちょっと休憩が取りたくて、マグナフェスもあるかもしれないので開発はゆっくりと進むと思います。", + "link": { + "intro": "全部のロードマップは以下のGithubリンクで:", + "title": "granblue.teamのロードマップ" }, - "item2": { - "title": "キャラクター変更", - "description": "指輪・御耳飾り・覚醒などキャラクターに付けるようになる" - }, - "item3": { - "title": "編成から外す", - "description": "キャラクター・武器・召喚石などを編成から外すようになる" - }, - "item4": { - "title": "限界超越", - "description": "編成にあるキャラクターや召喚石の限界超越のステージを記録するようになる" - }, - "item5": { - "title": "編成タブをURLで直接アクセス", - "description": "編成URLに/characters・/weapons・/summonsを追加したら、そのタブを直接にアクセスできるようになり、/allを追加したら全てのタブを一気に見えるようになる。" - }, - "item6": { - "title": "Rキャラ追加", - "description": "何時間もかかりますが追加します。" - }, - "item7": { - "title": "プライベートや未公開編成", - "description": "自分や友達だけのために編成を作成したいなら、プライベートまたは未公開設定でできる。" - } + "items": [ + { + "title": "アカウント昇進", + "description": "アカウントを登録せずに編成を作成した方が登場すると作った編成はアカウントに登録します。" + }, + { + "title": "フィルター強化", + "description": "フルオート、押し数などでフィルターをできるようになり、無題無名の編成を見せないように設定できるようになる。" + }, + { + "title": "プライベート、または非掲載編成", + "description": "自分だけのメモのために編成を作りたかったり、綺空団飲みとシェアした買ったりするならこの機能でできるようになる。" + }, + { + "title": "様々なアイテムをメンション", + "description": "@イクサバ、@シャルロッテ(リミテッドver)のようにメンションをすると、代理をおすすめしたり作戦について語ったりすることができるようになる。" + }, + { + "title": "編成詳細にMarkdown入力", + "description": "詳細ボックスに作戦など多めのテキストを入力しようとすればMarkdownでより簡単にフォーマッティングできるようになる。" + }, + { + "title": "詳細ボックスにツイート表示", + "description": "ツイートのURLを詳細ボックスに貼ると、ツイートは編成の下に表示するようになる。" + } + ] } } From 9f2ae9f732ff121d454ab5ba0f080662882e1da4 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 31 Jan 2023 22:10:30 -0800 Subject: [PATCH 15/18] Update ChangelogUnit to fetch data from API --- components/ChangelogUnit/index.scss | 3 +- components/ChangelogUnit/index.tsx | 59 +++++++++++++++++++++++++---- 2 files changed, 54 insertions(+), 8 deletions(-) diff --git a/components/ChangelogUnit/index.scss b/components/ChangelogUnit/index.scss index b79f2c75..6c6a0e8c 100644 --- a/components/ChangelogUnit/index.scss +++ b/components/ChangelogUnit/index.scss @@ -1,7 +1,7 @@ .ChangelogUnit { display: flex; flex-direction: column; - gap: $unit-half; + gap: $unit; img { border-radius: $input-corner; @@ -12,5 +12,6 @@ font-size: $font-small; font-weight: $medium; text-align: center; + line-height: 1.4; } } diff --git a/components/ChangelogUnit/index.tsx b/components/ChangelogUnit/index.tsx index e9786901..98fdb87b 100644 --- a/components/ChangelogUnit/index.tsx +++ b/components/ChangelogUnit/index.tsx @@ -1,10 +1,11 @@ -import React from 'react' +import { useRouter } from 'next/router' +import React, { useEffect, useState } from 'react' +import api from '~utils/api' import './index.scss' interface Props { id: string - name: string type: 'character' | 'summon' | 'weapon' image?: '01' | '02' | '03' | '04' } @@ -17,8 +18,52 @@ const defaultProps = { image: '01', } -const ChangelogUnit = ({ id, type, image, name }: Props) => { - function generateImageUrl() { +const ChangelogUnit = ({ id, type, image }: Props) => { + // Router + const router = useRouter() + const locale = + router.locale && ['en', 'ja'].includes(router.locale) ? router.locale : 'en' + + // State + const [item, setItem] = useState() + + // Hooks + useEffect(() => { + fetch() + }, []) + + async function fetch() { + switch (type) { + case 'character': + const character = await fetchCharacter() + setItem(character.data) + break + + case 'weapon': + const weapon = await fetchWeapon() + setItem(weapon.data) + break + + case 'summon': + const summon = await fetchSummon() + setItem(summon.data) + break + } + } + + async function fetchCharacter() { + return api.endpoints.characters.getOne({ id: id }) + } + + async function fetchWeapon() { + return api.endpoints.weapons.getOne({ id: id }) + } + + async function fetchSummon() { + return api.endpoints.summons.getOne({ id: id }) + } + + const imageUrl = () => { let src = '' switch (type) { @@ -37,9 +82,9 @@ const ChangelogUnit = ({ id, type, image, name }: Props) => { } return ( -
      - {name} -

      {name}

      +
      + {item +

      {item ? item.name[locale] : ''}

      ) } From 9c4da48b5a2f62331b7a47bca63a20bde14ff9af Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 31 Jan 2023 22:10:46 -0800 Subject: [PATCH 16/18] Add keys and update ChangelogUnit calls --- components/RoadmapPage/index.tsx | 2 +- components/UpdatesPage/index.tsx | 105 ++++++++++++------------------- 2 files changed, 41 insertions(+), 66 deletions(-) diff --git a/components/RoadmapPage/index.tsx b/components/RoadmapPage/index.tsx index 09a85b7d..695f437c 100644 --- a/components/RoadmapPage/index.tsx +++ b/components/RoadmapPage/index.tsx @@ -42,7 +42,7 @@ const RoadmapPage = () => {

      {about('roadmap.subtitle')}

        {[...Array(ROADMAP_ITEMS)].map((e, i) => ( -
      • +
      • {about(`roadmap.items.${i}.title`)}

        {about(`roadmap.items.${i}.description`)}

      • diff --git a/components/UpdatesPage/index.tsx b/components/UpdatesPage/index.tsx index 2c39ad7d..d5dfc83f 100644 --- a/components/UpdatesPage/index.tsx +++ b/components/UpdatesPage/index.tsx @@ -63,7 +63,7 @@ const UpdatesPage = () => {

        {updates('labels.features')}

          {[...Array(versionUpdates['1.1.0'].updates)].map((e, i) => ( -
        • +
        • {image( updates(`versions.1.1.0.features.${i}.title`), `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`, @@ -80,7 +80,9 @@ const UpdatesPage = () => {

          Bug fixes

            {[...Array(versionUpdates['1.1.0'].bugs)].map((e, i) => ( -
          • {updates(`versions.1.1.0.bugs.${i}`)}
          • +
          • + {updates(`versions.1.1.0.bugs.${i}`)} +
          • ))}
      @@ -88,53 +90,42 @@ const UpdatesPage = () => {
-

2023-01 Flash Gala

+

{`${updates('events.date', { + year: 2023, + month: 1, + })} ${updates('events.flash')}`}

{updates('labels.characters')}

- - + +

{updates('labels.weapons')}

- - + +
-

2023-01 Uncap

+

{`${updates('events.date', { + year: 2023, + month: 1, + })} ${updates('events.uncap')}`}

{updates('labels.uncaps')}

- +
@@ -146,82 +137,64 @@ const UpdatesPage = () => {
    {[...Array(versionUpdates['1.0.1'])].map((e, i) => ( -
  • {updates(`versions.1.0.1.features.${i}`)}
  • +
  • + {updates(`versions.1.0.1.features.${i}`)} +
  • ))}
-

2022-12 Legend Festival

+

{`${updates('events.date', { year: 2022, month: 12 })} ${updates( + 'events.legfest' + )}`}

{updates('labels.characters')}

- - - + + +

{updates('labels.weapons')}

- - - + + +

{updates('labels.summons')}

- +
-

2022-12 Flash Gala

+

{`${updates('events.date', { year: 2022, month: 12 })} ${updates( + 'events.flash' + )}`}

{updates('labels.characters')}

- - + +

{updates('labels.weapons')}

- - + +
@@ -233,7 +206,9 @@ const UpdatesPage = () => {
    {[...Array(versionUpdates['1.0.0'])].map((e, i) => ( -
  • {updates(`versions.1.0.0.features.${i}`)}
  • +
  • + {updates(`versions.1.0.0.features.${i}`)} +
  • ))}
From 248a7881762835ca93f32364e7011f1d99a7c300 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 31 Jan 2023 22:10:53 -0800 Subject: [PATCH 17/18] Add endpoints to api --- utils/api.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/utils/api.tsx b/utils/api.tsx index 3912b61e..862dac3c 100644 --- a/utils/api.tsx +++ b/utils/api.tsx @@ -168,6 +168,9 @@ class Api { const api: Api = new Api({ url: process.env.NEXT_PUBLIC_SIERO_API_URL || 'https://localhost:3000/api/v1'}) api.createEntity({ name: 'users' }) api.createEntity({ name: 'parties' }) +api.createEntity({ name: 'characters' }) +api.createEntity({ name: 'weapons' }) +api.createEntity({ name: 'summons' }) api.createEntity({ name: 'grid_characters' }) api.createEntity({ name: 'grid_weapons' }) api.createEntity({ name: 'grid_summons' }) From 34ead0e07fea6c47fbcf1ed43c2292446f3f11e4 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 31 Jan 2023 22:11:01 -0800 Subject: [PATCH 18/18] Add date string localization --- public/locales/en/updates.json | 1 + public/locales/ja/updates.json | 1 + 2 files changed, 2 insertions(+) diff --git a/public/locales/en/updates.json b/public/locales/en/updates.json index 21b92b9a..c2a0328a 100644 --- a/public/locales/en/updates.json +++ b/public/locales/en/updates.json @@ -7,6 +7,7 @@ "features": "New features" }, "events": { + "date": "{{month}}/{{year}}", "legfest": "Legend Festival", "flash": "Flash Gala", "uncap": "Uncap" diff --git a/public/locales/ja/updates.json b/public/locales/ja/updates.json index 653df021..55c0fb6e 100644 --- a/public/locales/ja/updates.json +++ b/public/locales/ja/updates.json @@ -7,6 +7,7 @@ "features": "新機能" }, "events": { + "date": "{{year}}年{{month}}月", "legfest": "レジェンドフェス", "flash": "グランデフェス", "uncap": "上限解放"