Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
3ef2245
Add download section to changelogs
MaxIsJoe Oct 26, 2024
1151eab
feat: Button component now supports choosing uppercase and side icons.
corp-0 Oct 27, 2024
a871f56
fix: stupidly fix changelog page not loading enough builds to create …
corp-0 Oct 27, 2024
31dbce4
refactor: revise Max's changes for new download dropdown
corp-0 Oct 27, 2024
bf4e98e
feat: close dropdown after clicking on an element
corp-0 Oct 27, 2024
bef8f55
docs(changelog): 1.12.0 [skip ci]
semantic-release-bot Oct 27, 2024
12b9370
chore: upgrade to nextjs15
corp-0 Oct 24, 2024
38cbba3
chore: updates packages
corp-0 Feb 2, 2025
6845ea6
feat: changes "Weekly Update" pill's text to "Progress update"
corp-0 Mar 30, 2025
905ccb8
chore: update packages
corp-0 Mar 30, 2025
9716025
docs(changelog): 1.13.0 [skip ci]
semantic-release-bot Mar 30, 2025
cd5c42f
feat: first iteration of the new ledger page
corp-0 Apr 20, 2025
1cae21d
feat: first iteration of the new ledger page
corp-0 Apr 20, 2025
6b21f87
docs(changelog): 1.13.0 [skip ci]
semantic-release-bot Apr 21, 2025
5826ba7
fix: updated vulnerable deps
corp-0 Dec 9, 2025
f307964
fix: update all deps
corp-0 Dec 9, 2025
71d438d
docs(changelog): 1.13.0 [skip ci]
semantic-release-bot Dec 10, 2025
fcdd097
swap cdn link
DooblyNoobly Jun 6, 2026
a053a31
chore: update deps
corp-0 Jun 8, 2026
8b163c8
feat: new download page for Pudu launcher
corp-0 Jun 8, 2026
8617f3b
fix: bump node version
corp-0 Jun 8, 2026
b5ab678
chore(deps): bump form-data from 4.0.5 to 4.0.6
dependabot[bot] Jun 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18.x
node-version: 22.x
- run: npm install
- run: npm run lint
- run: npm run build
Expand All @@ -21,7 +21,7 @@ jobs:
# - uses: actions/checkout@v3
# - uses: actions/setup-node@v3
# with:
# node-version: 18.x
# node-version: 22.x
# - run: npm install
# - name: unit test
# run: npm run test:unit
Expand All @@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18.x
node-version: 22.x
- run: npm install
- name: e2e testing
run: npm run test:e2e
8 changes: 4 additions & 4 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18.x
node-version: 22.x
- run: npm install
- run: npm run lint
- run: npm run build
Expand All @@ -21,7 +21,7 @@ jobs:
# - uses: actions/checkout@v3
# - uses: actions/setup-node@v3
# with:
# node-version: 18.x
# node-version: 22.x
# - run: npm install
# - name: unit test
# run: npm run test:unit
Expand All @@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18.x
node-version: 22.x
- run: npm install
- name: unit test
run: npm run test:e2e
Expand All @@ -44,7 +44,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18.x
node-version: 22.x
- name: Install plugins
run: |
npm install @semantic-release/commit-analyzer -D
Expand Down
44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,47 @@
# [1.13.0](https://github.com/unitystation/unitystation-web/compare/v1.12.0...v1.13.0) (2025-12-10)


### Bug Fixes

* update all deps ([f307964](https://github.com/unitystation/unitystation-web/commit/f307964ce27f43656b783ece0db9e1d4f967eab0))
* updated vulnerable deps ([5826ba7](https://github.com/unitystation/unitystation-web/commit/5826ba71cfb41b1b5023b46f971b797119de6877))


### Features

* changes "Weekly Update" pill's text to "Progress update" ([6845ea6](https://github.com/unitystation/unitystation-web/commit/6845ea6b17fe2701e8fbdc4cecf64d1a1319ec97))
* first iteration of the new ledger page ([1cae21d](https://github.com/unitystation/unitystation-web/commit/1cae21d0368529be3fba38b3e8990ff6c61639a4))
* first iteration of the new ledger page ([cd5c42f](https://github.com/unitystation/unitystation-web/commit/cd5c42f3b569956608fcc80886f1b962d1ed1319))

# [1.13.0](https://github.com/unitystation/unitystation-web/compare/v1.12.0...v1.13.0) (2025-04-21)


### Features

* changes "Weekly Update" pill's text to "Progress update" ([6845ea6](https://github.com/unitystation/unitystation-web/commit/6845ea6b17fe2701e8fbdc4cecf64d1a1319ec97))
* first iteration of the new ledger page ([1cae21d](https://github.com/unitystation/unitystation-web/commit/1cae21d0368529be3fba38b3e8990ff6c61639a4))
* first iteration of the new ledger page ([cd5c42f](https://github.com/unitystation/unitystation-web/commit/cd5c42f3b569956608fcc80886f1b962d1ed1319))

# [1.13.0](https://github.com/unitystation/unitystation-web/compare/v1.12.0...v1.13.0) (2025-03-30)


### Features

* changes "Weekly Update" pill's text to "Progress update" ([6845ea6](https://github.com/unitystation/unitystation-web/commit/6845ea6b17fe2701e8fbdc4cecf64d1a1319ec97))

# [1.12.0](https://github.com/unitystation/unitystation-web/compare/v1.11.0...v1.12.0) (2024-10-27)


### Bug Fixes

* stupidly fix changelog page not loading enough builds to create the scrollbar ([a871f56](https://github.com/unitystation/unitystation-web/commit/a871f5654d7b010b1e18fb824ced75ac0b46cd88))


### Features

* Button component now supports choosing uppercase and side icons. ([1151eab](https://github.com/unitystation/unitystation-web/commit/1151eabdacad7dfdcfe859d26d359c16840eba5d))
* close dropdown after clicking on an element ([bf4e98e](https://github.com/unitystation/unitystation-web/commit/bf4e98e90decc286f7308c948b4a6cfd48631bea))

# [1.11.0](https://github.com/unitystation/unitystation-web/compare/v1.10.0...v1.11.0) (2024-10-12)


Expand Down
2 changes: 1 addition & 1 deletion app/(account)/confirm-email/[token]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ const MailConfirmationPage = () => {
fetchData().then(r => {
setResponse(r);
});
}, []);
}, [token]);

if (!token) {
return <main>
Expand Down
2 changes: 1 addition & 1 deletion app/(account)/logout/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const LogoutPage = () => {
authState.logout().then(() => {
redirect("login");
});
}, []);
}, [authState]);
}

export default LogoutPage;
6 changes: 3 additions & 3 deletions app/(account)/register/page.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
"use client"

import React from "react";
import React, {useActionState} from "react";
import Button from "../../common/uiLibrary/Button";
import FormContainer from "../../common/uiLibrary/Layouters/formContainer";
import TextField from "../../common/uiLibrary/forms/textField";
import AlternativeActions from "../../common/uiLibrary/forms/alternativeActions";
import ContactInformation from "../../(home)/contactInformation";
import {useFormState} from "react-dom";
import "react-dom";
import {registerAccount, RegisterResponse} from "./actions";
import {isFieldError} from "../../../lib/auth/guards";
import { useFormStatus } from "react-dom";
Expand All @@ -18,7 +18,7 @@ const RegisterPage = () => {
success: false,
error: undefined
}
const [state, formAction] = useFormState(registerAccount, initialState);
const [state, formAction] = useActionState(registerAccount, initialState);

const uniqueIdHelperText = () =>
<>
Expand Down
5 changes: 2 additions & 3 deletions app/(account)/resend-confirm-email/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,16 @@ import FormContainer from "../../common/uiLibrary/Layouters/formContainer";
import TextField from "../../common/uiLibrary/forms/textField";
import Button from "../../common/uiLibrary/Button";
import ContactInformation from "../../(home)/contactInformation";
import React from "react";
import React, {useActionState} from "react";
import FullPage from "../../common/uiLibrary/Layouters/fullPage";
import {useFormState} from "react-dom";
import {postResendConfirmationMail, ResendConfirmationMailRequest} from "./actions";

const ResendConfirmationMail = () => {
const initialState: ResendConfirmationMailRequest = {
success: false,
}

const [state, formAction] = useFormState(postResendConfirmationMail, initialState);
const [state, formAction] = useActionState(postResendConfirmationMail, initialState);

const resendForm = () => {
return (
Expand Down
5 changes: 2 additions & 3 deletions app/(account)/reset-password/[token]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@


import {useParams} from "next/navigation";
import React from "react";
import React, {useActionState} from "react";
import FormContainer from "../../../common/uiLibrary/Layouters/formContainer";
import TextField from "../../../common/uiLibrary/forms/textField";
import Button from "../../../common/uiLibrary/Button";
import {useFormState} from "react-dom";
import {postPasswordReset, ResetPasswordStep2Response} from "./actions";
import {isFieldError} from "../../../../lib/auth/guards";
import FullPage from "../../../common/uiLibrary/Layouters/fullPage";
Expand All @@ -18,7 +17,7 @@ const ResetPasswordPageStep2 = () => {
error: undefined
}

const [state, formAction] = useFormState(postPasswordReset, initialState);
const [state, formAction] = useActionState(postPasswordReset, initialState);

const successMessage = () => (
<div className='flex flex-col gap-4'>
Expand Down
5 changes: 2 additions & 3 deletions app/(account)/reset-password/page.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
'use client'

import Button from "../../common/uiLibrary/Button";
import React from "react";
import React, {useActionState} from "react";
import FormContainer from "../../common/uiLibrary/Layouters/formContainer";
import TextField from "../../common/uiLibrary/forms/textField";
import {requestAPasswordReset, ResetPassowrdStep1} from "./actions";
import {useFormState} from "react-dom";
import ContactInformation from "../../(home)/contactInformation";

const initialState: ResetPassowrdStep1 = {
Expand All @@ -15,7 +14,7 @@ const initialState: ResetPassowrdStep1 = {
};

const ResetPasswordPage = () => {
const [state, formAction] = useFormState(requestAPasswordReset, initialState);
const [state, formAction] = useActionState(requestAPasswordReset, initialState);

const successMessage = () => (
<div className='flex flex-col gap-4'>
Expand Down
32 changes: 10 additions & 22 deletions app/(home)/DownloadButtonClient.tsx
Original file line number Diff line number Diff line change
@@ -1,24 +1,12 @@
'use client';
import LinkButton from "../common/uiLibrary/linkButton";
import {useEffect, useState} from "react";
import getDownloadLink from "../../utils/platform";
import {GITHUB_RELEASES_URL} from "../../utils/urlContants";
import {BiSolidDownload} from "react-icons/bi";


import LinkButton from '../common/uiLibrary/linkButton';
import { BiSolidDownload } from 'react-icons/bi';

const DownloadButtonClient = () => {
const [downloadLink, setDownloadLink] = useState(GITHUB_RELEASES_URL);

useEffect(() => {
getDownloadLink().then((link) => setDownloadLink(link));
}, []);

return (
<div className={'flex flex-col lg:flex-row justify-center mt-8 gap-4'}>
<LinkButton className="shadow-2xl" filled={true} text={'Download'} linkTo={downloadLink} iconRight={BiSolidDownload} />
</div>
)
}

export default DownloadButtonClient;
return (
<div className={'flex flex-col lg:flex-row justify-center mt-8 gap-4'}>
<LinkButton className="shadow-2xl" filled={true} text={'Download'} linkTo={'/download'} iconRight={BiSolidDownload} />
</div>
);
};

export default DownloadButtonClient;
67 changes: 0 additions & 67 deletions app/(home)/HeroRandomImageClient.tsx

This file was deleted.

29 changes: 10 additions & 19 deletions app/(home)/HomeBannerClient.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,20 @@ import layoutChildren from "../../types/layoutChildren";
import {useEffect, useState} from "react";

const images: string[] = [
"https://unitystationfile.b-cdn.net/Website-Statics/heroImages/bar-engine.png",
"https://unitystationfile.b-cdn.net/Website-Statics/heroImages/clowns.png",
"https://unitystationfile.b-cdn.net/Website-Statics/heroImages/conveyor.jpg",
"https://unitystationfile.b-cdn.net/Website-Statics/heroImages/df.jpg",
"https://unitystationfile.b-cdn.net/Website-Statics/heroImages/go-outsid.png",
"https://unitystationfile.b-cdn.net/Website-Statics/heroImages/honk.jpg",
"https://unitystationfile.b-cdn.net/Website-Statics/heroImages/hugger.png",
"https://unitystationfile.b-cdn.net/Website-Statics/heroImages/lemons.png",
"https://unitystationfile.b-cdn.net/Website-Statics/heroImages/shuttlecrash.png",
"https://unitystationfile.b-cdn.net/Website-Statics/heroImages/chairs.jpg",
"https://cdn.unitystation.org/Website-Statics/heroImages/bar-engine.png",
"https://cdn.unitystation.org/Website-Statics/heroImages/clowns.png",
"https://cdn.unitystation.org/Website-Statics/heroImages/conveyor.jpg",
"https://cdn.unitystation.org/Website-Statics/heroImages/df.jpg",
"https://cdn.unitystation.org/Website-Statics/heroImages/go-outsid.png",
"https://cdn.unitystation.org/Website-Statics/heroImages/honk.jpg",
"https://cdn.unitystation.org/Website-Statics/heroImages/hugger.png",
"https://cdn.unitystation.org/Website-Statics/heroImages/lemons.png",
"https://cdn.unitystation.org/Website-Statics/heroImages/shuttlecrash.png",
"https://cdn.unitystation.org/Website-Statics/heroImages/chairs.jpg",
];

let currentIndex = 0;

const shuffleImages = () => {
for (let i = images.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[images[i], images[j]] = [images[j], images[i]];
}
};

const getNextImage = () => {
currentIndex = (currentIndex + 1) % images.length;
return images[currentIndex];
Expand All @@ -33,8 +26,6 @@ const getNextImage = () => {
const HomeBannerClient = (props: layoutChildren) => {
const {children} = props;

shuffleImages();

const [image1, setImage1] = useState<string>(getNextImage());
const [image2, setImage2] = useState<string>(getNextImage());
const [showImage1, setShowImage1] = useState<boolean>(true);
Expand Down
2 changes: 2 additions & 0 deletions app/(home)/latestNews.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import classNames from "classnames";
import Container from "../common/uiLibrary/container";
import PageSectionTitle from "../common/uiLibrary/pageSectionTitle";
import LinkButton from "../common/uiLibrary/linkButton";
import Image from "next/image";

interface PostPreviewCardProps {
post: BlogPost,
Expand Down Expand Up @@ -30,6 +31,7 @@ const PostPreviewImage = ({post, isMain = false, className}: PostPreviewCardProp
return (
<div className={classNames(outerContainerStyles, {className})}>
<div className={innerContainerStyles}>
{/* eslint-disable-next-line @next/next/no-img-element */}
<img
src={post.socials_image}
alt={post.title}
Expand Down
Loading
Loading