added client things - finished home page
34
client/app/Wrapper.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
import React from 'react';
|
||||
import { BrowserRouter, Route, Switch } from 'react-router-dom';
|
||||
|
||||
import { Footer, Header } from './components';
|
||||
import { Home, Realms } from './pages';
|
||||
|
||||
// styling
|
||||
import './scss/index.scss';
|
||||
|
||||
interface Props {}
|
||||
|
||||
interface State {}
|
||||
|
||||
export default class Wrapper extends React.Component<Props, State> {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
public render() {
|
||||
return (
|
||||
<BrowserRouter>
|
||||
<div>
|
||||
<Header />
|
||||
<Switch>
|
||||
<Route exact path="/" component={Home} />
|
||||
<Route exact path="/realms" component={Realms} />
|
||||
{/* <Route component={NotFound} /> */}
|
||||
</Switch>
|
||||
<Footer />
|
||||
</div>
|
||||
</BrowserRouter>
|
||||
);
|
||||
}
|
||||
}
|
||||
6
client/app/app.tsx
Normal file
@@ -0,0 +1,6 @@
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
|
||||
import Wrapper from './Wrapper';
|
||||
|
||||
ReactDOM.render(<Wrapper />, document.getElementById('app'));
|
||||
BIN
client/app/assets/B.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/blizzard.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/border-bot-left.gif
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
client/app/assets/border-bot-right.gif
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
client/app/assets/border-bot.gif
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
client/app/assets/border-left.gif
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
client/app/assets/border-right.gif
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
client/app/assets/border-top-left.gif
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
client/app/assets/border-top-right.gif
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
client/app/assets/border-top.gif
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
client/app/assets/bottom-bg.gif
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
client/app/assets/bottom-blizzlogo.gif
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
client/app/assets/bugs.gif
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
client/app/assets/bullet.gif
Normal file
|
After Width: | Height: | Size: 1022 B |
BIN
client/app/assets/druid.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/dungeons.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/forum-bg.jpg
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
client/app/assets/forum-menu-left.gif
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
client/app/assets/forum-menu-newtopic.gif
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
client/app/assets/forum-menu-search.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
client/app/assets/framebg.jpg
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
client/app/assets/general.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/gold-bg.gif
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
client/app/assets/gold-border.gif
Normal file
|
After Width: | Height: | Size: 958 B |
BIN
client/app/assets/gryph-left.gif
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
client/app/assets/gryph-right.gif
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
client/app/assets/guilds.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/header-forums.gif
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
client/app/assets/hunter.gif
Normal file
|
After Width: | Height: | Size: 983 B |
BIN
client/app/assets/left-finger.gif
Normal file
|
After Width: | Height: | Size: 667 B |
BIN
client/app/assets/linksbar-bg.gif
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
client/app/assets/linksbar-left.gif
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
client/app/assets/linksbar-right.gif
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
client/app/assets/lock-icon.gif
Normal file
|
After Width: | Height: | Size: 619 B |
BIN
client/app/assets/login-bot-help.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
client/app/assets/mage.gif
Normal file
|
After Width: | Height: | Size: 1016 B |
BIN
client/app/assets/offtopic.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/paladin.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/pixel.gif
Normal file
|
After Width: | Height: | Size: 43 B |
BIN
client/app/assets/priest.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/professions.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/pvp.gif
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
client/app/assets/quests.gif
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
client/app/assets/realms.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/right-finger.gif
Normal file
|
After Width: | Height: | Size: 651 B |
BIN
client/app/assets/rogue.gif
Normal file
|
After Width: | Height: | Size: 994 B |
BIN
client/app/assets/roleplaying.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/serverstatus.gif
Normal file
|
After Width: | Height: | Size: 1005 B |
BIN
client/app/assets/shaman.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/square-grey.gif
Normal file
|
After Width: | Height: | Size: 226 B |
BIN
client/app/assets/square-new.gif
Normal file
|
After Width: | Height: | Size: 224 B |
BIN
client/app/assets/square-update.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
client/app/assets/square.gif
Normal file
|
After Width: | Height: | Size: 223 B |
BIN
client/app/assets/sticky.gif
Normal file
|
After Width: | Height: | Size: 374 B |
BIN
client/app/assets/suggestions.gif
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
client/app/assets/support.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/topbg-left.gif
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
client/app/assets/topbg-right.gif
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
client/app/assets/uicustomizations.gif
Normal file
|
After Width: | Height: | Size: 1004 B |
BIN
client/app/assets/warlock.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
client/app/assets/warrior.gif
Normal file
|
After Width: | Height: | Size: 1009 B |
BIN
client/app/assets/wowlogo-left.gif
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
client/app/assets/wowlogo-right.gif
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
client/app/assets/wowlogo2.gif
Normal file
|
After Width: | Height: | Size: 58 KiB |
@@ -0,0 +1,75 @@
|
||||
.content-container {
|
||||
position: relative;
|
||||
max-width: 766px;
|
||||
padding: 20px 40px 100px;
|
||||
margin: 0 auto 50px auto;
|
||||
}
|
||||
|
||||
.border-container {
|
||||
position: absolute;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.border {
|
||||
height: 100%;
|
||||
width: 135px;
|
||||
position: absolute;
|
||||
|
||||
&__top {
|
||||
background-image: url('../../assets/border-top.gif');
|
||||
background-repeat: repeat-x;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&__top-left {
|
||||
background-image: url('../../assets/border-top-left.gif');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
&__top-right {
|
||||
background-image: url('../../assets/border-top-right.gif');
|
||||
background-repeat: no-repeat;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
&__left {
|
||||
background-image: url('../../assets/border-left.gif');
|
||||
background-repeat: repeat-y;
|
||||
}
|
||||
|
||||
&__right {
|
||||
background-image: url('../../assets/border-right.gif');
|
||||
background-repeat: repeat-y;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
&__bottom {
|
||||
background-image: url('../../assets/border-bot.gif');
|
||||
background-repeat: repeat-x;
|
||||
bottom: 0;
|
||||
height: 62px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&__bottom-left {
|
||||
background-image: url('../../assets/border-bot-left.gif');
|
||||
background-repeat: no-repeat;
|
||||
bottom: 0;
|
||||
height: 192px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&__bottom-right {
|
||||
background-image: url('../../assets/border-bot-right.gif');
|
||||
background-repeat: no-repeat;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 192px;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
import React from 'react';
|
||||
|
||||
import './content-container.scss';
|
||||
|
||||
interface Props {}
|
||||
|
||||
interface State {}
|
||||
|
||||
export class ContentContainer extends React.Component<Props, State> {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="content-container">
|
||||
<div className="border-container">
|
||||
<div className="border border__left"/>
|
||||
<div className="border border__right"/>
|
||||
<div className="border border__bottom"/>
|
||||
<div className="border border__top"/>
|
||||
<div className="border border__top-left"/>
|
||||
<div className="border border__top-right"/>
|
||||
<div className="border border__bottom-left"/>
|
||||
<div className="border border__bottom-right"/>
|
||||
</div>
|
||||
{this.props.children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
8
client/app/components/footer/footer.scss
Normal file
@@ -0,0 +1,8 @@
|
||||
.bottom-bg {
|
||||
background-image: url('../../assets/bottom-bg.gif');
|
||||
background-repeat: repeat-x;
|
||||
height: 46px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
24
client/app/components/footer/footer.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import React from 'react';
|
||||
|
||||
import bottom_blizzlogo from '../../assets/bottom-blizzlogo.gif';
|
||||
|
||||
import './footer.scss';
|
||||
|
||||
interface Props {}
|
||||
|
||||
interface State {}
|
||||
|
||||
export class Footer extends React.Component<Props, State> {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="bottom-bg">
|
||||
<img src={bottom_blizzlogo}/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
103
client/app/components/header/header.scss
Normal file
@@ -0,0 +1,103 @@
|
||||
@import '../../scss/mixins';
|
||||
$topbg_height: 100px;
|
||||
|
||||
.wowlogo2 {
|
||||
position: absolute;
|
||||
top: 8;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
z-index: 1;
|
||||
|
||||
@include breakpoint(smallOrLess) {
|
||||
img {
|
||||
height: 80px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.gold-bg {
|
||||
height: 29px;
|
||||
background-image: url('../../assets/gold-bg.gif');
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
.topbg {
|
||||
margin-top: -29px;
|
||||
width: 50%;
|
||||
height: $topbg_height;
|
||||
background-repeat: repeat-x;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
|
||||
&__left {
|
||||
background-image: url('../../assets/topbg-left.gif');
|
||||
}
|
||||
|
||||
&__right {
|
||||
background-image: url('../../assets/topbg-right.gif');
|
||||
}
|
||||
}
|
||||
|
||||
.gryph {
|
||||
background-repeat: no-repeat;
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
width: 68px;;
|
||||
top: 0;
|
||||
|
||||
&__left {
|
||||
left: 0;
|
||||
background-image: url('../../assets/gryph-left.gif');
|
||||
}
|
||||
|
||||
&__right {
|
||||
right: 0;
|
||||
background-image: url('../../assets/gryph-right.gif');
|
||||
}
|
||||
}
|
||||
|
||||
.gold-border {
|
||||
height: 19px;
|
||||
background-image: url('../../assets/gold-border.gif');
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.finger {
|
||||
width: 97px;
|
||||
height: 19px;
|
||||
|
||||
&__left {
|
||||
background-image: url('../../assets/left-finger.gif');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
&__right {
|
||||
background-image: url('../../assets/right-finger.gif');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
}
|
||||
|
||||
.linksbar {
|
||||
height: 53px;
|
||||
background-image: url('../../assets/linksbar-bg.gif');
|
||||
background-repeat: repeat-x;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.linksbar-image {
|
||||
height: 53px;
|
||||
width: 106px;
|
||||
|
||||
&__left {
|
||||
background-image: url('../../assets/linksbar-left.gif');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
&__right {
|
||||
background-image: url('../../assets/linksbar-right.gif');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
}
|
||||
53
client/app/components/header/header.tsx
Normal file
@@ -0,0 +1,53 @@
|
||||
import React from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
import './header.scss';
|
||||
|
||||
import wowlogo2 from '../../assets/wowlogo2.gif';
|
||||
|
||||
interface Props {}
|
||||
|
||||
interface State {}
|
||||
|
||||
export class Header extends React.Component<Props, State> {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div>
|
||||
<div className="wowlogo2">
|
||||
<Link to="/">
|
||||
<img src={wowlogo2}/>
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
<div style={{ height: '80px' }}>
|
||||
<div className="gold-bg"/>
|
||||
<div className="topbg topbg__left">
|
||||
<div className="gryph gryph__left"/>
|
||||
</div>
|
||||
|
||||
<div className="topbg topbg__right">
|
||||
<div className="gryph gryph__right"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="gold-border">
|
||||
<div className="finger finger__left"/>
|
||||
<div className="finger finger__right"/>
|
||||
</div>
|
||||
|
||||
<div className="linksbar">
|
||||
<div className="linksbar-image linksbar-image__left"/>
|
||||
<span className="grey">
|
||||
<a href="#">News</a> | <a href="#">Game Info</a> | <a href="#">Forums</a> | <a href="#">Links/Files</a> | <a href="#">Support</a>
|
||||
</span>
|
||||
<div className="linksbar-image linksbar-image__right"/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
3
client/app/components/index.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export * from './footer/footer';
|
||||
export * from './header/header';
|
||||
export * from './content-container/content-container';
|
||||
62
client/app/pages/home/home.scss
Normal file
@@ -0,0 +1,62 @@
|
||||
@import '../../scss/mixins';
|
||||
|
||||
.topic-container {
|
||||
max-width: 650px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.topic-row {
|
||||
display: flex;
|
||||
|
||||
@include breakpoint(smallOrLess) {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
&__classes {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
||||
|
||||
.topic-item {
|
||||
display: flex;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
flex: 1;
|
||||
margin-top: 30px;
|
||||
|
||||
@include breakpoint(smallOrLess) {
|
||||
padding: 0;
|
||||
flex: initial;
|
||||
}
|
||||
|
||||
&__classes {
|
||||
flex: 1;
|
||||
display: block;
|
||||
padding-right: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.classes-container {
|
||||
margin-left: 15;
|
||||
|
||||
@include breakpoint(smallOrLess) {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.item-row {
|
||||
display: flex;
|
||||
margin-top: 30px;
|
||||
|
||||
&__class {
|
||||
margin-top: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.topic-item-icon {
|
||||
padding-right: 5px;
|
||||
height: 35;
|
||||
width: auto;
|
||||
}
|
||||
174
client/app/pages/home/home.tsx
Normal file
@@ -0,0 +1,174 @@
|
||||
import React from 'react';
|
||||
import { Link, RouteComponentProps } from 'react-router-dom';
|
||||
import { ContentContainer } from '../../components';
|
||||
|
||||
import './home.scss';
|
||||
|
||||
import header_forms from '../../assets/header-forums.gif';
|
||||
import support from '../../assets/support.gif';
|
||||
import serverstatus from '../../assets/serverstatus.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(link: string, title: string, icon: any, text: string): any {
|
||||
return (
|
||||
<div className="topic-item">
|
||||
<img className="topic-item-icon" src={icon}/>
|
||||
<div>
|
||||
<Link to={link}>{title}</Link>
|
||||
<div>{text}</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
private renderClass(title: string, url: string, icon: any): any {
|
||||
return (
|
||||
<div className="flex flex--center" style={{ flex: 1 }}>
|
||||
<img className="topic-item-icon" src={icon}/>
|
||||
<a href={url}>{title}</a>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
private renderClasses(): any {
|
||||
return (
|
||||
<div className="classes-container">
|
||||
<div className="item-row item-row__class">
|
||||
{this.renderClass('Druid', '#', druid)}
|
||||
{this.renderClass('Rogue', '#', rogue)}
|
||||
{this.renderClass('Priest', '#', priest)}
|
||||
</div>
|
||||
<div className="item-row item-row__class">
|
||||
{this.renderClass('Hunter', '#', hunter)}
|
||||
{this.renderClass('Shaman', '#', shaman)}
|
||||
{this.renderClass('Warrior', '#', warrior)}
|
||||
</div>
|
||||
<div className="item-row item-row__class">
|
||||
{this.renderClass('Mage', '#', mage)}
|
||||
{this.renderClass('Paladin', '#', paladin)}
|
||||
{this.renderClass('Warlock', '#', warlock)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<ContentContainer>
|
||||
<img src={header_forms} />
|
||||
<div>
|
||||
<b>Welcome to the World of Warcraft community forums!</b>
|
||||
</div>
|
||||
<p>
|
||||
Blizzard provides the World of Warcraft community forums for its player to chat, exchange ideas, and submit feedback. Posting on
|
||||
the World of Warcraft community forums requires a World of Warcraft account. Only customers are allowed to post on these forums,
|
||||
but anyone can read them. Please note that you must adhere to the Forum Guidelines if you wish to post on the forums.
|
||||
</p>
|
||||
|
||||
<div className="topic-container">
|
||||
<div className="topic-row">
|
||||
{this.renderTopic('#', 'Technical Support', support, `If you're experiencing technical problems playing World of Warcraft, post here for assistance.`)}
|
||||
{this.renderTopic('#', 'Realm Status', serverstatus, `Collection of important messages regarding the status of the Realms.`)}
|
||||
</div>
|
||||
<div className="topic-row">
|
||||
{this.renderTopic('#', 'UI & Macros Forum', uicustomizations, `Work with other players to create your own special custom interfaces and macros.`)}
|
||||
{this.renderTopic('#', 'Bug Report Forum', bugs, `Found a bug in the game? Help us squash it by reporting it here!`)}
|
||||
</div>
|
||||
|
||||
<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>
|
||||
<a href="#">Professions</a>
|
||||
<div>Discuss professions in detail.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="item-row">
|
||||
<img className="topic-item-icon" src={pvp}/>
|
||||
<div>
|
||||
<a href="#">PvP Discussion</a>
|
||||
<div>Discuss player versus player combat.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="item-row">
|
||||
<img className="topic-item-icon" src={quests}/>
|
||||
<div>
|
||||
<a href="#">Quest Discussion</a>
|
||||
<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('#', 'Off-topic', offtopic, `Off-topic posts of interest to the World of Warcraft community.`)}
|
||||
</div>
|
||||
<div className="topic-row">
|
||||
{this.renderTopic('#', 'Suggestions', suggestions, `Have a suggestion for World of Warcraft? Please post it here.`)}
|
||||
{this.renderTopic('#', 'Guild Recruitment', guilds, `Searching for a guild, or do you want to advertise your guild?`)}
|
||||
</div>
|
||||
<div className="topic-row">
|
||||
{this.renderTopic('#', '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('#', 'General Discussion.', general, `Discuss World of Warcraft.`)}
|
||||
</div>
|
||||
<div className="topic-row">
|
||||
{this.renderTopic('#', 'Raid and Dungeon Discussion', dungeons, `Discuss the instance dungeons and end-game raid encounters in World of Warcraft.`)}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
</ContentContainer>
|
||||
);
|
||||
}
|
||||
}
|
||||
2
client/app/pages/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * from './home/home';
|
||||
export * from './realms/realms';
|
||||
20
client/app/pages/realms/realms.tsx
Normal file
@@ -0,0 +1,20 @@
|
||||
import React from 'react';
|
||||
import { ContentContainer } from '../../components';
|
||||
|
||||
interface Props {}
|
||||
|
||||
interface State {}
|
||||
|
||||
export class Realms extends React.Component<Props, State> {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<ContentContainer>
|
||||
{/* TODO: */}
|
||||
</ContentContainer>
|
||||
);
|
||||
}
|
||||
}
|
||||
8
client/app/scss/_mixins.scss
Normal file
@@ -0,0 +1,8 @@
|
||||
@mixin breakpoint($point) {
|
||||
@if $point == smallOrLess {
|
||||
@media (max-width: 420px) { @content ; }
|
||||
}
|
||||
@else if $point == mediumOrLess {
|
||||
@media (max-width: 540px) { @content ; }
|
||||
}
|
||||
}
|
||||
4
client/app/scss/index.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
@import '~font-awesome/css/font-awesome.css';
|
||||
@import '~normalize.css/normalize.css';
|
||||
@import './variables.scss';
|
||||
@import './style.scss';
|
||||
57
client/app/scss/style.scss
Normal file
@@ -0,0 +1,57 @@
|
||||
html {
|
||||
font-family: Arial,Helvetica,Sans-Serif;
|
||||
font-size: 10pt;
|
||||
color: #cccccc;
|
||||
}
|
||||
|
||||
b {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: black;
|
||||
background-image: url('../assets/forum-bg.jpg');
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #FFB019;
|
||||
font-weight: bold;
|
||||
font-size: 9pt;
|
||||
|
||||
&:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
&:visited {
|
||||
color: #B1B1B1;
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
background: rgb(71, 71, 71);
|
||||
width: 80%;
|
||||
height: 0.5px;
|
||||
border: 0;
|
||||
margin: 25px auto;
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.inline-block {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.flex {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.flex--center {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
span.grey {
|
||||
font-family: Arial,Helvetica,Sans-Serif;
|
||||
color: #A0A1A3;
|
||||
font-size: 9pt;
|
||||
}
|
||||