Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
18a526f
Built the Glass component, and tested it on the header paragraph (The…
EemeliJ Apr 13, 2026
0ecafc6
Added more cloud gradients, and tweaked css values of the blur
EemeliJ Apr 14, 2026
6604d83
Changed headermobile to use the new glass component
EemeliJ Apr 23, 2026
b93c0e3
Merge pull request #642 from Alt-Org/eemeli/enhancement/618/cloud-car…
Skoivumaki May 4, 2026
85a0612
restructure join-us page to support new figma card hierarchy, stacked…
EemeliJ May 7, 2026
910f55b
Merge pull request #650 from Alt-Org/liisa/enhancement/623-skeleton-l…
Rutjake May 8, 2026
b1c35bd
update card spacing, typography and fi locale content to match figma …
EemeliJ May 9, 2026
7bc10a5
improve join-us figma parity with centered card content, z-layout vis…
EemeliJ May 12, 2026
1c41c87
Merge remote-tracking branch 'origin/dev' into Eemeli/enhancement/641…
EemeliJ May 14, 2026
115a006
Added external link icons
EemeliJ May 14, 2026
9329029
Refined responsive Join Us block layouts, improved mobile typography …
EemeliJ May 14, 2026
e904850
Fix JoinUs block rendering when links are undefined in tests
EemeliJ May 17, 2026
3d516dd
Another fix to prevent block crashing if data is undefined
EemeliJ May 17, 2026
bdfa8a4
And another fix to block
EemeliJ May 17, 2026
9f210a4
FIX: Updated JoinUsPage tests to match renamed block props
EemeliJ May 17, 2026
73b3e2d
feat: add FooterContact, FooterInfo, and FooterLinks components with …
Varkopat May 20, 2026
24eeafd
style: update Copyright section margins and padding to match design s…
Varkopat May 20, 2026
e8f1707
Added comments for documentation
Varkopat May 20, 2026
eb1c60f
refactor: remove unnecessary comment about contact emails
Varkopat May 20, 2026
c4b70d8
style: enhance JSDoc documentation for FooterContact and FooterLinks …
Varkopat May 20, 2026
3df59f3
style: add FeedbackCard styles to enhance footer design
Varkopat May 21, 2026
eb7c5bf
style: update footer layout and logo dimensions to align with Figma d…
Varkopat May 21, 2026
c6dd6e3
style: update footer components to match Figma designs with improved …
Varkopat May 22, 2026
9e362a3
Some fixes to link behavior and block naming
EemeliJ May 23, 2026
7ffbfc4
style: update footer styles to align with Figma designs, including fo…
Varkopat May 24, 2026
328a0b2
style: update footer styles and structure to align with Figma designs…
Varkopat May 24, 2026
b33b2b6
updated main page layout to match figma v2
oakchair52 May 26, 2026
cfee709
Error fix
Casimir43 May 26, 2026
f5c5fd4
Fixed build errors
Casimir43 May 26, 2026
705f37b
Made the desktop footer 4k-aware.
Varkopat May 26, 2026
454a623
style: update font-family and font-style for footer links and work wi…
Varkopat Jun 2, 2026
58001a6
Fixed: Header going under navbar on smaller screens, font size on sma…
EemeliJ Jun 3, 2026
a255d46
style: update footer link styles to use variable fonts for consistenc…
Varkopat Jun 3, 2026
e592d46
Removed the use of CTAsection in playwithus
Casimir43 Jun 4, 2026
20a227a
reverted, fixed the handgraphic.png
Casimir43 Jun 5, 2026
7ca7bb4
font violation fixed, better visibility across devices
Casimir43 Jun 9, 2026
febc212
Added english translations
EemeliJ Jun 9, 2026
b43286b
fixed weird crops after breaking points also made more fonts to respe…
Casimir43 Jun 9, 2026
95f18c4
Merge pull request #654 from Alt-Org/Varkopat/enhancement/644-update-…
Rutjake Jun 10, 2026
4b9fd43
Replaced the old images with new ones from Figma
EemeliJ Jun 11, 2026
a4af91c
added 48px gap between sections on mobile
Casimir43 Jun 15, 2026
ba20e26
Made some more fixes to overflowing on small screens
EemeliJ Jun 16, 2026
4155c53
Merge pull request #655 from Alt-Org/casimir/enhancement/648-match-fr…
Rutjake Jun 22, 2026
518e703
Merge pull request #653 from Alt-Org/Eemeli/enhancement/641/Join-Us-P…
Skoivumaki Jun 25, 2026
f0b1d2f
Refactor ClanCard component styles to align with latest Figma design …
Varkopat Jun 30, 2026
a08cc37
Continued refactoring ClanCard component styles to align with latest …
Varkopat Jul 1, 2026
c29ac70
Refactor code structure for improved readability and maintainability
Varkopat Jul 2, 2026
8c5f8ac
Refactor ClanCard component to enhance mobile and desktop views, alig…
Varkopat Jul 6, 2026
8f73a51
Refactor ClanCard styles to align with Figma design, adjusting font s…
Varkopat Jul 7, 2026
030d572
Refactor ClanCard mobile layout and styles to enhance responsiveness …
Varkopat Jul 8, 2026
0b52314
Refactor ClanCard component styles and layout to enhance responsivene…
Varkopat Jul 17, 2026
1091e7c
Refactor ClanCard component to update image assets and enhance mobile…
Varkopat Jul 21, 2026
2c53f77
fix(ui): improve MobileCard ClanCard responsiveness and layout alignment
Varkopat Jul 23, 2026
b3074c1
refactor(ClanCard): update media queries and improve image container …
Varkopat Jul 23, 2026
ef5e628
- I added a direct .MobileCard.ClanCard > .TextContainer > .Title1 ru…
Varkopat Jul 24, 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
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,38 @@ import { createPage } from '@/app/_helpers';
import { JoinUsProps } from '@/preparedPages/JoinUsPage';
import { getServerTranslation } from '@/shared/i18n';
import {
makeDiscordBlock,
makeRedditBlock,
makeDuunitoriBlock,
makeFeedbackBlock,
makeTeachersBlock,
makeInstagramBlock,
makeGetInTouchAndFollow,
makeCommunityAndOpportunities,
makeEducationProfessionals,
makeFeedback,
} from '@/entities/JoinUs';
import { getRouteJoinUsPage } from '@/shared/appLinks/RoutePaths';
import { defaultOpenGraph } from '@/shared/seoConstants';

export async function _getPage(lng: string) {
const { t } = await getServerTranslation(lng, 'join-us');

return createPage<JoinUsProps>({
buildPage: () => ({
title: t('join-us'),
discordBlock: makeDiscordBlock(t),
connectionBlock: makeRedditBlock(t),
teachersBlock: makeTeachersBlock(t),
feedbackBlock: makeFeedbackBlock(t),
duunitoriBlock: makeDuunitoriBlock(t),
instagramBlock: makeInstagramBlock(t),
getInTouchAndFollowBlock: makeGetInTouchAndFollow(t),
communityAndOpportunitiesBlock: makeCommunityAndOpportunities(t),
educationProfessionalsBlock: makeEducationProfessionals(t),
feedbackBlock: makeFeedback(t),
}),

buildSeo: () => ({
title: t('head-title'),
description: t('head-description'),
keywords: t('head-keywords'),

openGraph: {
...defaultOpenGraph,
title: t('og-title'),
description: t('og-description'),
url: `/${lng}${getRouteJoinUsPage()}`,
},

alternates: {
canonical: `/${lng}${getRouteJoinUsPage()}`,
},
Expand Down
10 changes: 4 additions & 6 deletions frontend-next-migration/src/entities/JoinUs/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
export { Block } from './ui/Block';

export {
makeDiscordBlock,
makeRedditBlock,
makeTeachersBlock,
makeDuunitoriBlock,
makeFeedbackBlock,
makeInstagramBlock,
makeGetInTouchAndFollow,
makeCommunityAndOpportunities,
makeEducationProfessionals,
makeFeedback,
} from './model/makeJoinUsBlocks';
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import { BlockSection } from '../types';
import { AppExternalLinks } from '@/shared/appLinks/appExternalLinks';
import ConnectionImage from '@/shared/assets/images/heros/mirror/Mirror.png';
import teachersImage from '@/shared/assets/images/heros/sleeper/Sleeper_new.png';
import feedbackImage from '@/shared/assets/images/heros/einstein/einstein.png';
import duunitoriImage from '@/shared/assets/images/heros/purple-girls/purpel-girls-main.png';
import discordImage from '@/shared/assets/images/heros/conman/conman.png';
import instagramImage from '@/shared/assets/images/heros/fate-priest/Believer.png';
import ArvotImage from '@/shared/assets/images/joinusPage/Arvot.png';
import KaikkienKaveritImage from '@/shared/assets/images/joinusPage/KaikkienKaverit.png';
import OpetusmaailmaImage from '@/shared/assets/images/joinusPage/Opetusmaailma.png';
import ClanLabelImage from '@/shared/assets/images/joinusPage/ClanLabelSomePersons.png';
import igIcon from '@/shared/assets/images/Insta2.svg';
import fbdIcon from '@/shared/assets/images/Facebook2.svg';
import discordIcon from '@/shared/assets/images/Discord2.svg';
Expand All @@ -16,8 +14,8 @@ import ytIcon from '@/shared/assets/images/Youtube2.svg';
* Supports multiple links per block, internationalized text labels, descriptions, and an optional image.
*
* @param {string} section -
* A section identifier (e.g., "discord", "teachers", "feedback") that is used to construct the correct
* translation keys dynamically. These keys are combined to fetch the localized label, description, link texts, and alt texts.
* A section identifier used to construct translation keys dynamically.
* These keys are combined to fetch the localized label, description, link texts, and alt texts.
*
* @param {BlockSection['links']} link -
* An array of link objects. Each object represents a link associated with the block and should include:
Expand All @@ -37,7 +35,7 @@ import ytIcon from '@/shared/assets/images/Youtube2.svg';
*
* @callback t
* @param {string} key -
* The translation key used to fetch the localized string (e.g., "block-label-discord", "block-description-feedback").
* The translation key used to fetch the localized string.
*
* @returns {string} -
* The translated string value associated with the provided key.
Expand All @@ -57,51 +55,18 @@ export const makeBlocksWithI18n = (
text: t(`block-link-text-${linkItem.text}`),
isExternal: linkItem.isExternal ?? false,
iconSrc: linkItem.iconSrc,
showExternalIcon: linkItem.showExternalIcon,
})),
img: img || '',
imgAlt: t(`block-image-alt-${section}`),
};
};
};

export const makeDiscordBlock = makeBlocksWithI18n(
'discord',
[{ text: 'discord', url: AppExternalLinks.discord, isExternal: true }],
discordImage.src.toString(),
);
export const makeRedditBlock = makeBlocksWithI18n(
'connection',
export const makeGetInTouchAndFollow = makeBlocksWithI18n(
'getInTouchAndFollow',
[
{ text: 'email', url: 'mailto:proyaleg@gmail.com', isExternal: true },
{ text: 'phone', url: 'tel:+358442407396', isExternal: true },
],
ConnectionImage.src.toString(),
);
export const makeTeachersBlock = makeBlocksWithI18n(
'teachers',
[
{ text: 'email', url: 'mailto:proyaleg@gmail.com', isExternal: true },
{ text: 'phone', url: 'tel:+358442407396', isExternal: true },
{ text: 'teacherPg', url: AppExternalLinks.dlpackage, isExternal: true },
],
teachersImage.src.toString(),
);
export const makeFeedbackBlock = makeBlocksWithI18n(
'feedback',
[
{ text: 'feedbackWep', url: AppExternalLinks.googleWebFeedback, isExternal: true },
{ text: 'feedbackGame', url: AppExternalLinks.googleFeedback, isExternal: true },
],
feedbackImage.src.toString(),
);
export const makeDuunitoriBlock = makeBlocksWithI18n(
'duunitori',
[{ text: 'duunitori', url: AppExternalLinks.duunitori, isExternal: true }],
duunitoriImage.src.toString(),
);
export const makeInstagramBlock = makeBlocksWithI18n(
'instagram',
[
{
text: 'icone',
url: AppExternalLinks.discord,
Expand All @@ -126,6 +91,66 @@ export const makeInstagramBlock = makeBlocksWithI18n(
isExternal: true,
iconSrc: igIcon.src,
},
{ text: 'email', url: 'mailto:proyaleg@gmail.com', isExternal: true },
],
ClanLabelImage.src.toString(),
);

export const makeCommunityAndOpportunities = makeBlocksWithI18n(
'communityAndOpportunities',
[
{
text: 'discord',
url: AppExternalLinks.discord,
isExternal: true,
showExternalIcon: true,
},
{
text: 'news',
url: '/fi/news',
isExternal: false,
showExternalIcon: false,
},
{
text: 'duunitori',
url: AppExternalLinks.duunitori,
isExternal: true,
showExternalIcon: true,
},
],
KaikkienKaveritImage.src.toString(),
);

export const makeEducationProfessionals = makeBlocksWithI18n(
'educationProfessionals',
[
{ text: 'phone', url: 'tel:+358442407396', isExternal: true },
{
text: 'teacherPg',
url: AppExternalLinks.dlpackage,
isExternal: true,
showExternalIcon: true,
},
{ text: 'email', url: 'mailto:proyaleg@gmail.com', isExternal: true },
],
OpetusmaailmaImage.src.toString(),
);

export const makeFeedback = makeBlocksWithI18n(
'feedback',
[
{
text: 'feedbackWep',
url: AppExternalLinks.googleWebFeedback,
isExternal: true,
showExternalIcon: true,
},
{
text: 'feedbackGame',
url: AppExternalLinks.googleFeedback,
isExternal: true,
showExternalIcon: true,
},
],
instagramImage.src.toString(),
ArvotImage.src.toString(),
);
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export interface BlockSection {
text: string;
url: string;
isExternal?: boolean;
showExternalIcon?: boolean;
iconSrc?: string;
}[];
img: string;
Expand Down
Loading
Loading