Skip to content

Commit b4f600b

Browse files
committed
fix lint
1 parent eaf54d6 commit b4f600b

File tree

2 files changed

+151
-154
lines changed
  • apps/desktop/packages/mainWindow/src
    • components/InfiniteScrollVersionsQueryWrapper
    • pages/AddonViewPage/Versions

2 files changed

+151
-154
lines changed

apps/desktop/packages/mainWindow/src/components/InfiniteScrollVersionsQueryWrapper/index.tsx

Lines changed: 46 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -114,56 +114,52 @@ const InfiniteScrollVersionsQueryWrapper = (props: Props) => {
114114
total: response.pagination?.totalCount || 0
115115
} satisfies VersionRowType
116116
} else {
117-
try {
118-
const project = await rspcContext.client.query([
119-
"modplatforms.modrinth.getProject",
120-
props.modId
121-
])
122-
123-
const response = await rspcContext.client.query([
124-
"modplatforms.modrinth.getProjectVersions",
125-
{
126-
project_id: props.modId,
127-
game_versions: versionsQuery.gameVersion
128-
? [versionsQuery.gameVersion]
129-
: undefined,
130-
loaders: versionsQuery.modLoaderType
131-
? [versionsQuery.modLoaderType]
132-
: undefined,
133-
limit: versionsQuery.pageSize,
134-
offset: ctx.pageParam
135-
}
136-
])
137-
138-
const processedData = {
139-
data: response
140-
.map((v) => ({
141-
id: v.project_id,
142-
fileId: v.id,
143-
name: v.name,
144-
releaseType: v.version_type as string,
145-
gameVersions: v.game_versions,
146-
downloads: v.downloads,
147-
datePublished: v.date_published,
148-
fileName: v.files[0].filename,
149-
size: v.files[0].size,
150-
hash: v.files[0].hashes.sha512,
151-
status: v.status || "",
152-
mainThumbnail: project.icon_url || undefined
153-
}))
154-
.sort(
155-
(a, b) =>
156-
new Date(b.datePublished).getTime() -
157-
new Date(a.datePublished).getTime()
158-
),
159-
index: ctx.pageParam,
160-
total: project.versions.length
161-
} satisfies VersionRowType
162-
163-
return processedData
164-
} catch (error) {
165-
throw error
166-
}
117+
const project = await rspcContext.client.query([
118+
"modplatforms.modrinth.getProject",
119+
props.modId
120+
])
121+
122+
const response = await rspcContext.client.query([
123+
"modplatforms.modrinth.getProjectVersions",
124+
{
125+
project_id: props.modId,
126+
game_versions: versionsQuery.gameVersion
127+
? [versionsQuery.gameVersion]
128+
: undefined,
129+
loaders: versionsQuery.modLoaderType
130+
? [versionsQuery.modLoaderType]
131+
: undefined,
132+
limit: versionsQuery.pageSize,
133+
offset: ctx.pageParam
134+
}
135+
])
136+
137+
const processedData = {
138+
data: response
139+
.map((v) => ({
140+
id: v.project_id,
141+
fileId: v.id,
142+
name: v.name,
143+
releaseType: v.version_type as string,
144+
gameVersions: v.game_versions,
145+
downloads: v.downloads,
146+
datePublished: v.date_published,
147+
fileName: v.files[0].filename,
148+
size: v.files[0].size,
149+
hash: v.files[0].hashes.sha512,
150+
status: v.status || "",
151+
mainThumbnail: project.icon_url || undefined
152+
}))
153+
.sort(
154+
(a, b) =>
155+
new Date(b.datePublished).getTime() -
156+
new Date(a.datePublished).getTime()
157+
),
158+
index: ctx.pageParam,
159+
total: project.versions.length
160+
} satisfies VersionRowType
161+
162+
return processedData
167163
}
168164
},
169165
initialPageParam: 0,

apps/desktop/packages/mainWindow/src/pages/AddonViewPage/Versions/index.tsx

Lines changed: 105 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ const Versions = () => {
5353
return rows().length
5454
},
5555
getScrollElement: () => {
56-
let element = versionsContainerRef
56+
let element: HTMLElement | undefined = versionsContainerRef
5757
while (element?.parentElement) {
5858
const style = window.getComputedStyle(element.parentElement)
5959
if (
@@ -82,117 +82,118 @@ const Versions = () => {
8282
</div>
8383
}
8484
>
85-
<div class="flex h-full flex-col" ref={versionsContainerRef}>
86-
<div
87-
class="bg-darkSlate-800 border-darkSlate-600 sticky z-20 mb-4 grid grid-cols-[4fr_130px_100px_120px_150px] gap-4 border-b px-6 pb-3 pt-4 text-xs font-medium uppercase tracking-wide text-lightSlate-400"
88-
style={{ top: "136px" }}
89-
>
90-
<div>
91-
<Trans key="browser_table_headers.name" />
92-
</div>
93-
<div>
94-
<Trans key="browser_table_headers.published" />
95-
</div>
96-
<div>
97-
<Trans key="browser_table_headers.downloads" />
98-
</div>
99-
<div>
100-
<Trans key="browser_table_headers.type" />
85+
<div class="flex h-full flex-col" ref={versionsContainerRef}>
86+
<div
87+
class="bg-darkSlate-800 border-darkSlate-600 sticky z-20 mb-4 grid grid-cols-[4fr_130px_100px_120px_150px] gap-4 border-b px-6 pb-3 pt-4 text-xs font-medium uppercase tracking-wide text-lightSlate-400"
88+
style={{ top: "136px" }}
89+
>
90+
<div>
91+
<Trans key="browser_table_headers.name" />
92+
</div>
93+
<div>
94+
<Trans key="browser_table_headers.published" />
95+
</div>
96+
<div>
97+
<Trans key="browser_table_headers.downloads" />
98+
</div>
99+
<div>
100+
<Trans key="browser_table_headers.type" />
101+
</div>
102+
<div class="text-right">Actions</div>
101103
</div>
102-
<div class="text-right">Actions</div>
103-
</div>
104-
<div class="flex-1 px-6">
105-
<Show
106-
when={rows().length > 0}
107-
fallback={
108-
<div class="flex flex-col items-center justify-center py-16 text-center">
109-
<Show when={infiniteQuery.isLoading}>
110-
<div class="i-ri:loader-4-line animate-spin text-2xl text-lightSlate-400" />
111-
<span class="ml-2">Loading versions...</span>
112-
</Show>
113-
<Show when={infiniteQuery.infiniteQuery.error}>
114-
<div class="i-ri:error-warning-line text-red-400 mb-4 text-3xl" />
115-
<h3 class="text-red-300 mb-2 text-lg font-semibold">
116-
Error loading versions
117-
</h3>
118-
<Button
119-
type="secondary"
120-
size="small"
121-
onClick={() => infiniteQuery.infiniteQuery.refetch()}
104+
<div class="flex-1 px-6">
105+
<Show
106+
when={rows().length > 0}
107+
fallback={
108+
<div class="flex flex-col items-center justify-center py-16 text-center">
109+
<Show when={infiniteQuery.isLoading}>
110+
<div class="i-ri:loader-4-line animate-spin text-2xl text-lightSlate-400" />
111+
<span class="ml-2">Loading versions...</span>
112+
</Show>
113+
<Show when={infiniteQuery.infiniteQuery.error}>
114+
<div class="i-ri:error-warning-line text-red-400 mb-4 text-3xl" />
115+
<h3 class="text-red-300 mb-2 text-lg font-semibold">
116+
Error loading versions
117+
</h3>
118+
<Button
119+
type="secondary"
120+
size="small"
121+
onClick={() => infiniteQuery.infiniteQuery.refetch()}
122+
>
123+
<div class="i-ri:refresh-line mr-2" />
124+
Retry
125+
</Button>
126+
</Show>
127+
<Show
128+
when={
129+
!infiniteQuery.isLoading &&
130+
!infiniteQuery.infiniteQuery.error
131+
}
122132
>
123-
<div class="i-ri:refresh-line mr-2" />
124-
Retry
125-
</Button>
126-
</Show>
127-
<Show
128-
when={
129-
!infiniteQuery.isLoading && !infiniteQuery.infiniteQuery.error
130-
}
131-
>
132-
<span class="text-lightSlate-400">No versions found</span>
133-
</Show>
134-
</div>
135-
}
136-
>
137-
<div
138-
style={{
139-
height: `${virtualizer.getTotalSize()}px`,
140-
width: "100%",
141-
position: "relative"
142-
}}
133+
<span class="text-lightSlate-400">No versions found</span>
134+
</Show>
135+
</div>
136+
}
143137
>
144-
<For each={virtualizer.getVirtualItems()}>
145-
{(virtualItem) => {
146-
const version = rows()[virtualItem.index]
147-
if (!version) return null
138+
<div
139+
style={{
140+
height: `${virtualizer.getTotalSize()}px`,
141+
width: "100%",
142+
position: "relative"
143+
}}
144+
>
145+
<For each={virtualizer.getVirtualItems()}>
146+
{(virtualItem) => {
147+
const version = rows()[virtualItem.index]
148+
if (!version) return null
148149

149-
if (
150-
virtualItem.index >= rows().length - 5 &&
151-
infiniteQuery.infiniteQuery.hasNextPage &&
152-
!infiniteQuery.infiniteQuery.isFetchingNextPage
153-
) {
154-
infiniteQuery.infiniteQuery.fetchNextPage().catch(() => {})
155-
}
150+
if (
151+
virtualItem.index >= rows().length - 5 &&
152+
infiniteQuery.infiniteQuery.hasNextPage &&
153+
!infiniteQuery.infiniteQuery.isFetchingNextPage
154+
) {
155+
infiniteQuery.infiniteQuery.fetchNextPage().catch(() => {})
156+
}
156157

157-
return (
158-
<div
159-
style={{
160-
position: "absolute",
161-
top: "0",
162-
left: "0",
163-
width: "100%",
164-
height: `${virtualItem.size}px`,
165-
transform: `translateY(${virtualItem.start}px)`
166-
}}
167-
class="border-darkSlate-700 hover:bg-darkSlate-750 grid grid-cols-[4fr_130px_100px_120px_150px] gap-4 border-b py-2 transition-colors duration-150"
168-
classList={{
169-
"bg-green-500/5 border-green-500/20":
170-
installedMod()?.remoteId.toString() ===
171-
version?.fileId.toString()
172-
}}
173-
>
174-
<VersionRow
175-
project={mod?.data}
176-
modVersion={version}
177-
installedFile={installedMod()}
178-
instanceId={instanceId()}
179-
type={mod?.data?.type}
180-
instanceMods={instanceMods.data || undefined}
181-
instanceDetails={instanceDetails.data || undefined}
182-
/>
183-
</div>
184-
)
185-
}}
186-
</For>
187-
</div>
188-
<Show when={infiniteQuery.infiniteQuery.isFetchingNextPage}>
189-
<div class="flex h-20 items-center justify-center">
190-
<div class="i-ri:loader-4-line animate-spin text-2xl text-lightSlate-400" />
158+
return (
159+
<div
160+
style={{
161+
position: "absolute",
162+
top: "0",
163+
left: "0",
164+
width: "100%",
165+
height: `${virtualItem.size}px`,
166+
transform: `translateY(${virtualItem.start}px)`
167+
}}
168+
class="border-darkSlate-700 hover:bg-darkSlate-750 grid grid-cols-[4fr_130px_100px_120px_150px] gap-4 border-b py-2 transition-colors duration-150"
169+
classList={{
170+
"bg-green-500/5 border-green-500/20":
171+
installedMod()?.remoteId.toString() ===
172+
version?.fileId.toString()
173+
}}
174+
>
175+
<VersionRow
176+
project={mod?.data}
177+
modVersion={version}
178+
installedFile={installedMod()}
179+
instanceId={instanceId()}
180+
type={mod?.data?.type}
181+
instanceMods={instanceMods.data || undefined}
182+
instanceDetails={instanceDetails.data || undefined}
183+
/>
184+
</div>
185+
)
186+
}}
187+
</For>
191188
</div>
189+
<Show when={infiniteQuery.infiniteQuery.isFetchingNextPage}>
190+
<div class="flex h-20 items-center justify-center">
191+
<div class="i-ri:loader-4-line animate-spin text-2xl text-lightSlate-400" />
192+
</div>
193+
</Show>
192194
</Show>
193-
</Show>
195+
</div>
194196
</div>
195-
</div>
196197
</Show>
197198
)
198199
}

0 commit comments

Comments
 (0)