diff --git a/IWantToHeal-Thor-v1.0.40.apk b/IWantToHeal-Thor-v1.0.40.apk new file mode 100644 index 0000000..1ad97d7 Binary files /dev/null and b/IWantToHeal-Thor-v1.0.40.apk differ diff --git a/android/app/build.gradle b/android/app/build.gradle index 25089be..c046471 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "com.warren.iwanttoheal" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 59 - versionName "1.0.39" + versionCode 60 + versionName "1.0.40" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/src/App.css b/src/App.css index 2eff659..9204df8 100644 --- a/src/App.css +++ b/src/App.css @@ -1952,16 +1952,6 @@ h2 { grid-template-columns: 1fr; } -.part-start-row { - display: grid; - gap: 8px; - grid-template-columns: minmax(0, 1fr) minmax(82px, 0.38fr); -} - -.hard-mode-button { - border-color: #c25b4b; -} - .part-setup-panel .primary-button { min-height: 54px; } diff --git a/src/App.tsx b/src/App.tsx index 5689798..78919b9 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -88,7 +88,6 @@ function App() { const [roguelikeUpgradeTiming, setRoguelikeUpgradeTiming] = useState('encounter') const [roguelikeAbilityLabelMode, setRoguelikeAbilityLabelMode] = useState('ability') const [pvpContentType, setPvpContentType] = useState('dungeon') - const [selectedPart, setSelectedPart] = useState(1) const [selectedMarathonMode, setSelectedMarathonMode] = useState(false) const [activityPage, setActivityPage] = useState(0) const [combatContentId, setCombatContentId] = useState(1) @@ -233,7 +232,6 @@ function App() { const roguelikePool = profile.dungeons .filter((candidate) => candidate.contentType === roguelikeKind) .flatMap((candidate) => candidate.encounters) - const startPart = selectedPart return ( { setScreen(combatContentId < 0 ? 'roguelike' : dungeon.contentType === 'raid' ? 'raids' : 'dungeons') }} @@ -298,7 +296,6 @@ function App() { setCombatContentId(-1) setSelectedDifficultyId(baseDungeon?.difficulties[0]?.id ?? 1) } - setSelectedPart(1) setSelectedMarathonMode(false) setScreen('combat') } @@ -318,24 +315,24 @@ function App() { ?? tierOptions.slice().reverse().find((candidate) => profile.character.level >= candidate.unlockLevel) ?? tierOptions[0] const selectedTierItemLevel = selectedTier?.droppedItemLevel ?? 0 - const tierActivityOptions = activityOptions.filter((option) => - option.difficulties.some((difficulty) => difficulty.droppedItemLevel === selectedTierItemLevel), - ) - const activityPageCount = Math.max(1, Math.ceil(tierActivityOptions.length / ACTIVITY_PAGE_SIZE)) + const activityPageCount = Math.max(1, Math.ceil(activityOptions.length / ACTIVITY_PAGE_SIZE)) const currentActivityPage = Math.min(activityPage, activityPageCount - 1) - const pagedActivityOptions = tierActivityOptions.slice( + const pagedActivityOptions = activityOptions.slice( currentActivityPage * ACTIVITY_PAGE_SIZE, currentActivityPage * ACTIVITY_PAGE_SIZE + ACTIVITY_PAGE_SIZE, ) + const activityPageStart = activityOptions.length === 0 + ? 0 + : currentActivityPage * ACTIVITY_PAGE_SIZE + 1 + const activityPageEnd = Math.min(activityOptions.length, (currentActivityPage + 1) * ACTIVITY_PAGE_SIZE) const selectedActivityId = screen === 'raids' && raid ? raid.id : dungeon.id - const activity = tierActivityOptions.find((candidate) => candidate.id === selectedActivityId) - ?? tierActivityOptions[0] + const activity = activityOptions.find((candidate) => candidate.id === selectedActivityId) + ?? activityOptions[0] ?? (screen === 'raids' && raid ? raid : dungeon) const selectedDifficulty = activity.difficulties.find( (candidate) => candidate.droppedItemLevel === selectedTierItemLevel, ) ?? activity.difficulties[0] const difficultyLocked = profile.character.level < selectedDifficulty.unlockLevel - const sectionName = activity.contentType === 'raid' ? 'Phase' : 'Part' const activityCompletionCount = activity.completionCount ?? 0 const marathonUnlocked = activityCompletionCount >= 10 const cloudSync = getCloudSyncStatus() @@ -652,7 +649,7 @@ function App() { > Prev - {currentActivityPage + 1}/{activityPageCount} + {activityPageStart}-{activityPageEnd} of {activityOptions.length}