better home page

This commit is contained in:
Sendou
2019-06-10 18:51:20 +03:00
parent e668c00b74
commit 4ed8cd2ae6
18 changed files with 60 additions and 43 deletions

View File

@@ -1,13 +1,13 @@
{
"files": {
"main.js": "/static/js/main.b0f41a39.chunk.js",
"main.js.map": "/static/js/main.b0f41a39.chunk.js.map",
"main.js": "/static/js/main.11805f7e.chunk.js",
"main.js.map": "/static/js/main.11805f7e.chunk.js.map",
"runtime~main.js": "/static/js/runtime~main.a8a9905a.js",
"runtime~main.js.map": "/static/js/runtime~main.a8a9905a.js.map",
"static/js/2.e89314dc.chunk.js": "/static/js/2.e89314dc.chunk.js",
"static/js/2.e89314dc.chunk.js.map": "/static/js/2.e89314dc.chunk.js.map",
"static/js/2.8f79602a.chunk.js": "/static/js/2.8f79602a.chunk.js",
"static/js/2.8f79602a.chunk.js.map": "/static/js/2.8f79602a.chunk.js.map",
"index.html": "/index.html",
"precache-manifest.634d8599f1cb08d60e60a9e453e6842d.js": "/precache-manifest.634d8599f1cb08d60e60a9e453e6842d.js",
"precache-manifest.57456dced1c66d79720b9e84938825c8.js": "/precache-manifest.57456dced1c66d79720b9e84938825c8.js",
"service-worker.js": "/service-worker.js",
"static/media/ancho-v_games.png": "/static/media/ancho-v_games.07d5d0f6.png",
"static/media/arowana_mall.png": "/static/media/arowana_mall.26cf0823.png",
@@ -20,6 +20,7 @@
"static/media/humpback_pump_track.png": "/static/media/humpback_pump_track.fac19229.png",
"static/media/inkblot_art_academy.png": "/static/media/inkblot_art_academy.fdae0280.png",
"static/media/kelp_dome.png": "/static/media/kelp_dome.6610593e.png",
"static/media/koshienBanner.png": "/static/media/koshienBanner.34fca5d9.png",
"static/media/league.png": "/static/media/league.7aa42d81.png",
"static/media/mahi.png": "/static/media/mahi.0e9369da.png",
"static/media/makomart.png": "/static/media/makomart.8a4f661e.png",
@@ -33,7 +34,6 @@
"static/media/ranked.png": "/static/media/ranked.415f6ad8.png",
"static/media/regular.png": "/static/media/regular.4848edcb.png",
"static/media/rig.png": "/static/media/rig.87b5e71c.png",
"static/media/rigBanner.png": "/static/media/rigBanner.60e0f75c.png",
"static/media/rm.png": "/static/media/rm.ee623ae2.png",
"static/media/shellendorf_institute.png": "/static/media/shellendorf_institute.d6669767.png",
"static/media/skipper_pavilion.png": "/static/media/skipper_pavilion.1b3dbb2a.png",

View File

@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><link rel="stylesheet" href="//cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>sendou.ink</title></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(l){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],f=0,i=[];f<n.length;f++)t=n[f],p[t]&&i.push(p[t][0]),p[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(l[r]=o[r]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==p[u]&&(n=!1)}n&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var t={},p={1:0},c=[];function f(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return l[e].call(r.exports,r,r.exports,f),r.l=!0,r.exports}f.m=l,f.c=t,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(r,e){if(1&e&&(r=f(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)f.d(t,n,function(e){return r[e]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;a()}([])</script><script src="/static/js/2.e89314dc.chunk.js"></script><script src="/static/js/main.b0f41a39.chunk.js"></script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><link rel="stylesheet" href="//cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>sendou.ink</title></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(l){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],f=0,i=[];f<n.length;f++)t=n[f],p[t]&&i.push(p[t][0]),p[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(l[r]=o[r]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==p[u]&&(n=!1)}n&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var t={},p={1:0},c=[];function f(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return l[e].call(r.exports,r,r.exports,f),r.l=!0,r.exports}f.m=l,f.c=t,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(r,e){if(1&e&&(r=f(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)f.d(t,n,function(e){return r[e]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;a()}([])</script><script src="/static/js/2.8f79602a.chunk.js"></script><script src="/static/js/main.11805f7e.chunk.js"></script></body></html>

View File

@@ -1,15 +1,15 @@
self.__precacheManifest = (self.__precacheManifest || []).concat([
{
"revision": "35b5aaa9722c8b2fcd00aa3be2a13845",
"revision": "71842041eea18563ab917159b1dbf3b8",
"url": "/index.html"
},
{
"revision": "c9a46f4ed5a7a59a324b",
"url": "/static/js/2.e89314dc.chunk.js"
"revision": "834d30fd9e3e84494043",
"url": "/static/js/2.8f79602a.chunk.js"
},
{
"revision": "bb74ec896158185f0dc5",
"url": "/static/js/main.b0f41a39.chunk.js"
"revision": "3198713366d488e35a2e",
"url": "/static/js/main.11805f7e.chunk.js"
},
{
"revision": "42ac5946195a7306e2a5",
@@ -59,6 +59,10 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
"revision": "6610593ec2d587f95a48f82f3f31ab2c",
"url": "/static/media/kelp_dome.6610593e.png"
},
{
"revision": "34fca5d92b48e8f6b4c1a2501cea5ce1",
"url": "/static/media/koshienBanner.34fca5d9.png"
},
{
"revision": "7aa42d817869c09c604225434d0c09c1",
"url": "/static/media/league.7aa42d81.png"
@@ -111,10 +115,6 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
"revision": "87b5e71c29a70bc15a501002b4192517",
"url": "/static/media/rig.87b5e71c.png"
},
{
"revision": "60e0f75c3cf5b2d1eb076b080b4f7f16",
"url": "/static/media/rigBanner.60e0f75c.png"
},
{
"revision": "ee623ae225822d4a257120c58516eb86",
"url": "/static/media/rm.ee623ae2.png"

View File

@@ -14,7 +14,7 @@
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.0/workbox-sw.js");
importScripts(
"/precache-manifest.634d8599f1cb08d60e60a9e453e6842d.js"
"/precache-manifest.57456dced1c66d79720b9e84938825c8.js"
);
self.addEventListener('message', (event) => {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

View File

@@ -102,7 +102,6 @@ const typeDefs = gql`
topBrella: [Placement]
topBrellaScore: Float
}
type Placement {
id: ID!
name: String!
@@ -114,17 +113,14 @@ const typeDefs = gql`
month: Int!
year: Int!
}
type topPlayer {
placements: [Placement!]!
modeCount: [Int!]!
}
type PlayerWithPlacements {
player: Player!
placements: [Placement!]!
}
type Maplist {
name: String!
sz: [String!]!
@@ -132,20 +128,17 @@ const typeDefs = gql`
rm: [String!]!
cb: [String!]!
}
enum LinkType {
DISCORD
GUIDE
MISC
}
type Link {
title: String!
url: String!
description: String!
type: LinkType!
}
type User {
username: String!
discriminator: String!
@@ -155,11 +148,9 @@ const typeDefs = gql`
twitter_name: String
custom_url: String
}
type Token {
value: String!
}
enum Ability {
CB
LDE
@@ -187,7 +178,6 @@ const typeDefs = gql`
SS
BRU
}
type Build {
id: ID!
discord_id: String!
@@ -198,7 +188,6 @@ const typeDefs = gql`
shoes: [Ability!]!
createdAt: String
}
type Query {
playerCount: Int!
topTotalPlayers (amount: Int): [Player!]!
@@ -223,7 +212,6 @@ const typeDefs = gql`
searchForBuilds(discord_id: String!): [Build]!
deleteBuild(id: ID!): Boolean
}
type Mutation {
createUser(
username: String!
@@ -686,4 +674,4 @@ app.get('*', (req, res) => {
const PORT = process.env.PORT || 3001
app.listen({ port: PORT }, () => {
console.log(`Server running on http://localhost:${PORT}${server.graphqlPath}`)
})
})

View File

@@ -1,15 +1,42 @@
import React from 'react'
import { Header, Image } from 'semantic-ui-react'
import rigBanner from '../img/misc/rigBanner.png'
import { Link } from 'react-router-dom'
import koshienBanner from '../img/misc/koshienBanner.png'
const HomePage = () => {
return (
<div style={{'textAlign': 'center'}}>
<div>
<div>
<div style={{'textAlign': 'center'}}>
<Header as='h2'>Welcome to sendou.ink!<Header sub>Competitive Splatoon Hub</Header></Header>
</div>
<div style={{'paddingTop': '20px'}}>
<b><Link to='/maps'>Maplists</Link></b> - Generate a maplist to use when scrimming.
You can choose the map pool to be used including monthly ranked maps or an upcoming event.
Any maps you don't feel like you need to practice can be excluded from the pool.
</div>
<div style={{'paddingTop': '15px'}}>
<b><Link to='/rotation'>Rotation</Link></b> - View upcoming Splatoon 2 rotations up to 24 hours in advance.
Have some maps you'd rather not play in ranked? You can set those as unfavored maps (log in not required).
If a rotation contains your unfavored maps you can easily tell at a glance.
</div>
<div style={{'paddingTop': '15px'}}>
<b><Link to='/xleaderboard'>Leaderboards</Link></b> - Browse through X Rank Top 500 Leaderboards.
There is a leaderboard for each weapon class where players are ranked by the average of their top four powers.
</div>
<div style={{'paddingTop': '15px'}}>
<b><Link to='/xsearch'>Top 500 Search</Link></b> - Search through X Rank Top 500 results.
You can choose any weapon to find out the top performing players with it.
Another way is to search for a player name if you are curious how a specific player has performed in the past.
</div>
<div style={{'paddingTop': '15px'}}>
<b><Link to='/links'>Links</Link></b> - Discover useful resources related to competitive Splatoon.
</div>
<div style={{'paddingTop': '15px'}}>
If you <b>login</b> you can add gear builds on your user page. As a reference you can take a look at
my <Link to='u/79237403620945920'>page.</Link>
</div>
<div style={{'paddingTop': '10px'}}>
<Image rounded src={rigBanner} size='huge' centered/>
<Image rounded src={koshienBanner} size='huge' centered/>
</div>
</div>
)

View File

@@ -2,7 +2,7 @@ import React, { useState } from 'react'
import { Menu, Segment, Button, Image, Dropdown } from 'semantic-ui-react'
import { useQuery } from 'react-apollo-hooks'
import { userLean } from '../../graphql/queries/userLean'
import { withRouter } from 'react-router-dom'
import { withRouter, Link } from 'react-router-dom'
import { memCakes } from '../../utils/lists'
const MainMenu = withRouter(({ history, menuSelection, setMenuSelection }) => {
@@ -59,7 +59,9 @@ const MainMenu = withRouter(({ history, menuSelection, setMenuSelection }) => {
<Segment inverted>
<Menu inverted secondary stackable>
<Menu.Item>
<img src={process.env.PUBLIC_URL + `/memCakes/${memCakePic}`} alt="mem cake logo" onClick={() => setMemCakePic(memCakes[Math.floor(Math.random()*memCakes.length)])}/>
<Link to='/'>
<Image src={process.env.PUBLIC_URL + `/memCakes/${memCakePic}`} alt="mem cake logo" style={{'maxWidth': '25%', 'height': 'auto'}}/>
</Link>
</Menu.Item>
<Menu.Item
name='maplists'
@@ -67,7 +69,7 @@ const MainMenu = withRouter(({ history, menuSelection, setMenuSelection }) => {
onClick={() => { history.push('/maps') }}
/>
<Menu.Item
name='rotations'
name='rotation'
active={menuSelection === 'rotations'}
onClick={() => {
history.push('/rotation')

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB