diff --git a/client/assets/styles/styles.css b/client/assets/styles/styles.css index 6bd4ee34..ddd87392 100644 --- a/client/assets/styles/styles.css +++ b/client/assets/styles/styles.css @@ -361,16 +361,16 @@ header { grid-template-areas: "top" - "list"; + "team"; } -.menu-constructs .list { +.constructs-list { margin-top: 0.5em; - grid-area: list; + grid-area: team; display: grid; grid-template-columns: repeat(3, 1fr); - grid-auto-rows: 1fr; + /*grid-auto-rows: 1fr;*/ grid-gap: 0.5em; } @@ -425,7 +425,26 @@ header { /* INSTANCE LIST */ +.menu-instances { + display: grid; + + grid-template-areas: + "team" + "list" + "create"; + grid-template-columns: 1fr; + grid-template-rows: 1fr 1fr 1fr; +} + +.menu-instances .construct-list { + grid-area: team; + grid-auto-columns: 1fr; + grid-gap: 0.5em; +} + .menu-instance-list { + grid-area: list; + flex: 1; order: 99; flex-flow: row wrap; @@ -446,6 +465,7 @@ header { } .create-form { + grid-area: create; flex: 1; display: flex; diff --git a/client/assets/styles/styles.mobile.css b/client/assets/styles/styles.mobile.css index df88ebc5..bd29c7f6 100644 --- a/client/assets/styles/styles.mobile.css +++ b/client/assets/styles/styles.mobile.css @@ -28,6 +28,10 @@ transition: all 0.5s ease-in-out; } + main { + overflow-x: hidden; + } + #toggle-nav { display: none; } #toggle-nav-label { diff --git a/client/src/components/list.jsx b/client/src/components/list.jsx index 18674f30..96b2ceff 100644 --- a/client/src/components/list.jsx +++ b/client/src/components/list.jsx @@ -1,10 +1,12 @@ const { connect } = require('react-redux'); const preact = require('preact'); -const { NULL_UUID } = require('./../utils'); +const { stringSort, NULL_UUID, COLOURS, constructAvatar } = require('./../utils'); const actions = require('./../actions'); const InstanceCreateForm = require('./instance.create.form'); +const idSort = stringSort('id'); + const addState = connect( function receiveState(state) { const { ws, constructs, team, instances, account } = state; @@ -40,6 +42,7 @@ function List(args) { const { account, team, + constructs, sendInstanceState, sendInstanceJoin, sendInstanceList, @@ -93,8 +96,29 @@ function List(args) { ); } + const constructPanels = constructs + .filter(c => team.includes(c.id)) + .sort(idSort) + .map(construct => { + const colour = team.indexOf(construct.id); + const selected = colour > -1; + + return ( +