mirror of
https://github.com/mgerb/classic-wow-forums
synced 2026-01-09 00:42:47 +00:00
208 lines
7.8 KiB
TypeScript
208 lines
7.8 KiB
TypeScript
import React from 'react';
|
|
import { Link, RouteComponentProps } from 'react-router-dom';
|
|
import { ContentContainer, ScrollToTop } from '../../components';
|
|
|
|
import './home.scss';
|
|
|
|
import header_forms from '../../assets/header-forums.gif';
|
|
import support from '../../assets/support.gif';
|
|
import uicustomizations from '../../assets/uicustomizations.gif';
|
|
import bugs from '../../assets/bugs.gif';
|
|
import realms from '../../assets/realms.gif';
|
|
import offtopic from '../../assets/offtopic.gif';
|
|
import suggestions from '../../assets/suggestions.gif';
|
|
import guilds from '../../assets/guilds.gif';
|
|
import roleplaying from '../../assets/roleplaying.gif';
|
|
import general from '../../assets/general.gif';
|
|
import dungeons from '../../assets/dungeons.gif';
|
|
import bullet from '../../assets/bullet.gif';
|
|
|
|
// classes
|
|
import druid from '../../assets/druid.gif';
|
|
import rogue from '../../assets/rogue.gif';
|
|
import priest from '../../assets/priest.gif';
|
|
import hunter from '../../assets/hunter.gif';
|
|
import shaman from '../../assets/shaman.gif';
|
|
import warrior from '../../assets/warrior.gif';
|
|
import mage from '../../assets/mage.gif';
|
|
import paladin from '../../assets/paladin.gif';
|
|
import warlock from '../../assets/warlock.gif';
|
|
|
|
import professions from '../../assets/professions.gif';
|
|
import pvp from '../../assets/pvp.gif';
|
|
import quests from '../../assets/quests.gif';
|
|
|
|
interface Props extends RouteComponentProps<any> {}
|
|
|
|
interface State {}
|
|
|
|
export class Home extends React.Component<Props, State> {
|
|
constructor(props: Props) {
|
|
super(props);
|
|
}
|
|
|
|
private renderTopic(topicId: number | string, title: string, icon: any, text: string): any {
|
|
return (
|
|
<div className="topic-item">
|
|
<img className="topic-item-icon" src={icon} />
|
|
<div>
|
|
<Link to={typeof topicId === 'number' ? `/f/${topicId}` : topicId}>{title}</Link>
|
|
<div>{text}</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
private renderClass(title: string, topicId: number, icon: any): any {
|
|
return (
|
|
<div className="flex flex--center" style={{ flex: 1 }}>
|
|
<img className="topic-item-icon" src={icon} />
|
|
<Link to={`/f/${topicId}`}>{title}</Link>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
private renderClasses(): any {
|
|
return (
|
|
<div className="classes-container">
|
|
<div className="item-row item-row__class">
|
|
{this.renderClass('Druid', 0, druid)}
|
|
{this.renderClass('Rogue', 1, rogue)}
|
|
{this.renderClass('Priest', 2, priest)}
|
|
</div>
|
|
<div className="item-row item-row__class">
|
|
{this.renderClass('Hunter', 3, hunter)}
|
|
{this.renderClass('Shaman', 4, shaman)}
|
|
{this.renderClass('Warrior', 5, warrior)}
|
|
</div>
|
|
<div className="item-row item-row__class">
|
|
{this.renderClass('Mage', 6, mage)}
|
|
{this.renderClass('Paladin', 7, paladin)}
|
|
{this.renderClass('Warlock', 8, warlock)}
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
render() {
|
|
return (
|
|
<ScrollToTop>
|
|
<ContentContainer>
|
|
<img src={header_forms} />
|
|
<div>
|
|
<b>Welcome to the unofficial Classic WoW Forums!</b>
|
|
</div>
|
|
<p>
|
|
I created this site with the intention of providing
|
|
a fully functional and accurate representation of
|
|
the World of Warcraft forums as they were
|
|
back in 2005. <Link to={'/t/137/1'}>Please read this first!</Link>
|
|
</p>
|
|
|
|
<p>
|
|
<b>DISCLAIMER:</b> This site is in no way affiliated with Blizzard Entertainment, Inc. All rights reserved.
|
|
World of Warcraft, Warcraft and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment,
|
|
Inc. in the U.S. and/or other countries.
|
|
</p>
|
|
|
|
<div className="topic-container">
|
|
<div className="topic-row">
|
|
{this.renderTopic(
|
|
137,
|
|
'Site Suggestions',
|
|
support,
|
|
`Have a suggestion for this site? Please post it here.`,
|
|
)}
|
|
{ /* maybe add realm status in the future */
|
|
/* {this.renderTopic(
|
|
'#', 'Realm Status', serverstatus,
|
|
`Collection of important messages regarding the status of the Realms.`)} */}
|
|
</div>
|
|
<div className="topic-row">
|
|
{this.renderTopic(
|
|
138,
|
|
'UI & Macros Forum',
|
|
uicustomizations,
|
|
`Work with other players to create your own special custom interfaces and macros.`,
|
|
)}
|
|
{this.renderTopic(139, 'Bug Report Forum', bugs, `Found a bug on this site? Help us squash it by reporting it here!`)}
|
|
</div>
|
|
|
|
<hr className="hr"/>
|
|
|
|
<div className="topic-row topic-row__classes">
|
|
<div className="topic-item topic-item__classes">
|
|
<div className="flex" style={{ marginBottom: '10px' }}>
|
|
<img className="topic-item-icon" src={bullet} />
|
|
<div>
|
|
<b>Classes</b>
|
|
<div>Discuss your favorite class:</div>
|
|
</div>
|
|
</div>
|
|
{this.renderClasses()}
|
|
</div>
|
|
|
|
<div className="topic-item topic-item__classes">
|
|
<div className="item-row" style={{ minWidth: '250px' }}>
|
|
<img className="topic-item-icon" src={professions} />
|
|
<div>
|
|
<Link to="/f/140">Professions</Link>
|
|
<div>Discuss professions in detail.</div>
|
|
</div>
|
|
</div>
|
|
<div className="item-row">
|
|
<img className="topic-item-icon" src={pvp} />
|
|
<div>
|
|
<Link to="/f/141">PvP Discussion</Link>
|
|
<div>Discuss player versus player combat.</div>
|
|
</div>
|
|
</div>
|
|
<div className="item-row">
|
|
<img className="topic-item-icon" src={quests} />
|
|
<div>
|
|
<Link to="/f/142">Quest Discussion</Link>
|
|
<div>Talk about and get help with the countless quests in World of Warcraft.</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="topic-row">
|
|
{this.renderTopic(
|
|
'/realms',
|
|
'Realm Forums',
|
|
realms,
|
|
`Discuss topics related to World of Warcraft with players on your specific Realm.`,
|
|
)}
|
|
{this.renderTopic(131, 'Off-topic', offtopic, `Off-topic posts of interest to the World of Warcraft community.`)}
|
|
</div>
|
|
<div className="topic-row">
|
|
{this.renderTopic(134, 'Suggestions', suggestions, `Have a suggestion for World of Warcraft? Please post it here.`)}
|
|
{this.renderTopic(132, 'Guild Recruitment', guilds, `Searching for a guild, or do you want to advertise your guild?`)}
|
|
</div>
|
|
<div className="topic-row">
|
|
{this.renderTopic(
|
|
135,
|
|
'Role-Playing',
|
|
roleplaying,
|
|
`Pull up a chair, drink a mug of ale, meet new friends, tell stories, and role-play in this forum.`,
|
|
)}
|
|
{this.renderTopic(133, 'General Discussion.', general, `Discuss World of Warcraft.`)}
|
|
</div>
|
|
<div className="topic-row">
|
|
{this.renderTopic(
|
|
136,
|
|
'Raid and Dungeon Discussion',
|
|
dungeons,
|
|
`Discuss the instance dungeons and end-game raid encounters in World of Warcraft.`,
|
|
)}
|
|
</div>
|
|
</div>
|
|
|
|
<hr className="hr"/>
|
|
</ContentContainer>
|
|
</ScrollToTop>
|
|
);
|
|
}
|
|
}
|