Skip to content

Commit 143c17f

Browse files
committed
2.0.26-alpha
1 parent b672a42 commit 143c17f

10 files changed

Lines changed: 282 additions & 269 deletions

File tree

apps/desktop/packages/main/utils/__tests__/emailHash.test.ts

Lines changed: 202 additions & 184 deletions
Large diffs are not rendered by default.

apps/desktop/packages/main/utils/emailHash.ts

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import crypto from 'crypto';
1+
import crypto from "crypto"
22

33
/**
44
* Normalize email address per UID2 specification
@@ -16,28 +16,28 @@ import crypto from 'crypto';
1616
*/
1717
export function normalizeEmail(email: string): string {
1818
// 1. Trim whitespace
19-
let normalized = email.trim();
19+
let normalized = email.trim()
2020

2121
// 2. Lowercase
22-
normalized = normalized.toLowerCase();
22+
normalized = normalized.toLowerCase()
2323

2424
// 3. Gmail-specific rules
25-
if (normalized.endsWith('@gmail.com')) {
26-
const [localPart, domain] = normalized.split('@');
25+
if (normalized.endsWith("@gmail.com")) {
26+
const [localPart, domain] = normalized.split("@")
2727

2828
// Remove periods from local part
29-
let gmailLocal = localPart.replace(/\./g, '');
29+
let gmailLocal = localPart.replace(/\./g, "")
3030

3131
// Remove + and everything after it
32-
const plusIndex = gmailLocal.indexOf('+');
32+
const plusIndex = gmailLocal.indexOf("+")
3333
if (plusIndex !== -1) {
34-
gmailLocal = gmailLocal.substring(0, plusIndex);
34+
gmailLocal = gmailLocal.substring(0, plusIndex)
3535
}
3636

37-
normalized = `${gmailLocal}@${domain}`;
37+
normalized = `${gmailLocal}@${domain}`
3838
}
3939

40-
return normalized;
40+
return normalized
4141
}
4242

4343
/**
@@ -54,13 +54,11 @@ export function normalizeEmail(email: string): string {
5454
* @returns Base64-encoded SHA-256 hash
5555
*/
5656
export function hashEmail(email: string): string {
57-
const normalized = normalizeEmail(email);
57+
const normalized = normalizeEmail(email)
5858

5959
// SHA-256 produces a buffer of bytes
60-
const hashBytes = crypto.createHash('sha256')
61-
.update(normalized)
62-
.digest(); // Returns Buffer (bytes)
60+
const hashBytes = crypto.createHash("sha256").update(normalized).digest() // Returns Buffer (bytes)
6361

6462
// Base64 encode the bytes
65-
return hashBytes.toString('base64');
63+
return hashBytes.toString("base64")
6664
}

apps/desktop/packages/mainWindow/src/components/EnhancedSearchBar.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,11 @@ export function EnhancedSearchBar() {
4444
<div
4545
class="bg-darkSlate-700 outline-2 outline outline-offset-2 outline-transparent has-[:focus-visible]:outline-darkSlate-500 hover:outline-darkSlate-600 hover:has-[:focus-visible]:outline-darkSlate-500 flex h-10 items-center gap-2 overflow-hidden rounded-md duration-300"
4646
style={{
47-
"transition": "width 300ms cubic-bezier(0.4, 0, 0.2, 1), padding 300ms cubic-bezier(0.4, 0, 0.2, 1), opacity 300ms cubic-bezier(0.4, 0, 0.2, 1), outline-color 150ms cubic-bezier(0.4, 0, 0.2, 1)",
47+
transition:
48+
"width 300ms cubic-bezier(0.4, 0, 0.2, 1), padding 300ms cubic-bezier(0.4, 0, 0.2, 1), opacity 300ms cubic-bezier(0.4, 0, 0.2, 1), outline-color 150ms cubic-bezier(0.4, 0, 0.2, 1)",
4849
"will-change": "width, padding",
49-
"contain": "layout",
50-
"transform": "translateZ(0)"
50+
contain: "layout",
51+
transform: "translateZ(0)"
5152
}}
5253
classList={{
5354
"w-80 px-4": !isExpanded(),

apps/desktop/packages/mainWindow/src/components/Instance/Tile.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -410,16 +410,15 @@ const Tile = (props: Props) => {
410410
class="bg-darkSlate-800 relative flex h-full w-full items-center justify-center overflow-hidden rounded-2xl bg-cover bg-center transition-all duration-300 ease-in-out"
411411
classList={{
412412
grayscale: isLoading() || isInQueue(),
413-
"group-hover:scale-120":
414-
!isLoading() && !isInQueue()
413+
"group-hover:scale-120": !isLoading() && !isInQueue()
415414
}}
416415
style={{
417416
"background-image": props.img
418417
? `url("${props.img}")`
419418
: `url("${DefaultImg}")`,
420419
"will-change": "transform, opacity",
421-
"contain": "layout style",
422-
"transform": "translateZ(0)",
420+
contain: "layout style",
421+
transform: "translateZ(0)",
423422
...(props.shouldSetViewTransition
424423
? {
425424
"view-transition-name": `instance-tile-image`

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

Lines changed: 52 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -127,61 +127,61 @@ const Versions = () => {
127127
</Show>
128128
}
129129
>
130-
<div
131-
style={{
132-
height: `${virtualizer.getTotalSize()}px`,
133-
width: "100%",
134-
position: "relative"
135-
}}
136-
>
137-
<For each={virtualizer.getVirtualItems()}>
138-
{(virtualItem) => {
139-
const version = rows()[virtualItem.index]
140-
if (!version) return null
130+
<div
131+
style={{
132+
height: `${virtualizer.getTotalSize()}px`,
133+
width: "100%",
134+
position: "relative"
135+
}}
136+
>
137+
<For each={virtualizer.getVirtualItems()}>
138+
{(virtualItem) => {
139+
const version = rows()[virtualItem.index]
140+
if (!version) return null
141141

142-
if (
143-
virtualItem.index >= rows().length - 5 &&
144-
infiniteQuery.infiniteQuery.hasNextPage &&
145-
!infiniteQuery.infiniteQuery.isFetchingNextPage
146-
) {
147-
infiniteQuery.infiniteQuery.fetchNextPage().catch(() => {})
148-
}
142+
if (
143+
virtualItem.index >= rows().length - 5 &&
144+
infiniteQuery.infiniteQuery.hasNextPage &&
145+
!infiniteQuery.infiniteQuery.isFetchingNextPage
146+
) {
147+
infiniteQuery.infiniteQuery.fetchNextPage().catch(() => {})
148+
}
149149

150-
return (
151-
<div
152-
style={{
153-
position: "absolute",
154-
top: "0",
155-
left: "0",
156-
width: "100%",
157-
height: `${virtualItem.size}px`,
158-
transform: `translateY(${virtualItem.start}px)`
159-
}}
160-
class="border-darkSlate-700 hover:bg-darkSlate-700/30 grid grid-cols-[4fr_130px_100px_120px_150px] gap-4 border-b py-2 transition-colors duration-150"
161-
classList={{
162-
"bg-green-500/5 border-green-500/20":
163-
installedMod()?.remoteId.toString() ===
164-
version?.fileId.toString()
165-
}}
166-
>
167-
<VersionRow
168-
project={mod?.data}
169-
modVersion={version}
170-
installedFile={installedMod()}
171-
instanceId={instanceId()}
172-
type={mod?.data?.type}
173-
instanceMods={instanceMods.data || undefined}
174-
instanceDetails={instanceDetails.data || undefined}
175-
/>
176-
</div>
177-
)
178-
}}
179-
</For>
150+
return (
151+
<div
152+
style={{
153+
position: "absolute",
154+
top: "0",
155+
left: "0",
156+
width: "100%",
157+
height: `${virtualItem.size}px`,
158+
transform: `translateY(${virtualItem.start}px)`
159+
}}
160+
class="border-darkSlate-700 hover:bg-darkSlate-700/30 grid grid-cols-[4fr_130px_100px_120px_150px] gap-4 border-b py-2 transition-colors duration-150"
161+
classList={{
162+
"bg-green-500/5 border-green-500/20":
163+
installedMod()?.remoteId.toString() ===
164+
version?.fileId.toString()
165+
}}
166+
>
167+
<VersionRow
168+
project={mod?.data}
169+
modVersion={version}
170+
installedFile={installedMod()}
171+
instanceId={instanceId()}
172+
type={mod?.data?.type}
173+
instanceMods={instanceMods.data || undefined}
174+
instanceDetails={instanceDetails.data || undefined}
175+
/>
176+
</div>
177+
)
178+
}}
179+
</For>
180+
</div>
181+
<Show when={infiniteQuery.infiniteQuery.isFetchingNextPage}>
182+
<div class="flex h-20 items-center justify-center">
183+
<Spinner class="h-8 w-8" />
180184
</div>
181-
<Show when={infiniteQuery.infiniteQuery.isFetchingNextPage}>
182-
<div class="flex h-20 items-center justify-center">
183-
<Spinner class="h-8 w-8" />
184-
</div>
185185
</Show>
186186
</Show>
187187
</div>

apps/desktop/packages/mainWindow/src/pages/Library/Instance/Tabs/Settings/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ const Settings = () => {
5151
if (!old) return old
5252
return {
5353
...old,
54-
name: variables.name?.Set !== undefined ? variables.name.Set : old.name,
54+
name:
55+
variables.name?.Set !== undefined ? variables.name.Set : old.name,
5556
modpack:
5657
variables.modpackLocked?.Set !== undefined
5758
? variables.modpackLocked.Set === null

apps/desktop/packages/mainWindow/src/pages/Library/Instance/index.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@ import { useGDNavigate } from "@/managers/NavigationManager"
2727
import { queryClient, rspc } from "@/utils/rspcClient"
2828
import fetchData from "./instance.data"
2929
import { detectDuplicatedMods } from "@/utils/duplicateMods"
30-
import {
31-
InstanceDetails,
32-
ListInstance
33-
} from "@gd/core_module/bindings"
30+
import { InstanceDetails, ListInstance } from "@gd/core_module/bindings"
3431
import {
3532
getInstanceImageUrl,
3633
getPreparingState,
@@ -60,7 +57,6 @@ interface InstancePage {
6057
const Instance = () => {
6158
const navigator = useGDNavigate()
6259
const params = useParams()
63-
const rspcContext = rspc.useContext()
6460
const location = useLocation()
6561
const [editableName, setEditableName] = createSignal(false)
6662
const [isFavorite, setIsFavorite] = createSignal(false)

apps/desktop/packages/mainWindow/src/pages/Settings/Privacy.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ const Privacy = () => {
4444
</Row>
4545
<Row>
4646
<Title
47-
description={<Trans key="settings:email_personalization_description" />}
47+
description={
48+
<Trans key="settings:email_personalization_description" />
49+
}
4850
>
4951
<Trans key="settings:email_personalization_title" />
5052
</Title>

apps/desktop/vitest.config.mjs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ import { defineConfig } from "vitest/config"
33
export default defineConfig({
44
test: {
55
globals: true,
6-
include: [
7-
"packages/**/*.{test,spec}.{ts,tsx}"
8-
],
6+
include: ["packages/**/*.{test,spec}.{ts,tsx}"],
97
exclude: [
108
"**/node_modules/**",
119
"**/dist/**",

packages/config/version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"version": "2.0.26",
3-
"channel": "beta"
3+
"channel": "alpha"
44
}

0 commit comments

Comments
 (0)