improve layout
This commit is contained in:
parent
2b533febc4
commit
558d7ce770
|
@ -6,12 +6,16 @@ export default function (props) {
|
||||||
const navigate = useNavigate()
|
const navigate = useNavigate()
|
||||||
return (
|
return (
|
||||||
<header id="page-header">
|
<header id="page-header">
|
||||||
|
<div id="h-container">
|
||||||
<h2>
|
<h2>
|
||||||
{props.super}
|
{props.super}
|
||||||
</h2>
|
</h2>
|
||||||
<h1>
|
<h1>
|
||||||
{props.heading}
|
{props.heading}
|
||||||
</h1>
|
</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<span id="icon-container">
|
<span id="icon-container">
|
||||||
|
|
||||||
<button onClick={() => { navigate(`${props.url}/create`) }}>
|
<button onClick={() => { navigate(`${props.url}/create`) }}>
|
||||||
|
|
|
@ -139,6 +139,7 @@ export default function Table(props) {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
<div id="table-container">
|
||||||
<h2>{props.header}</h2>
|
<h2>{props.header}</h2>
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -146,6 +147,8 @@ export default function Table(props) {
|
||||||
{renderRows(data)}
|
{renderRows(data)}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
|
||||||
|
<path d="M3.5 0c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5c.59 0 1.17-.14 1.66-.41a1 1 0 0 0 .13.13l1 1a1.02 1.02 0 1 0 1.44-1.44l-1-1a1 1 0 0 0-.16-.13c.27-.49.44-1.06.44-1.66 0-1.93-1.57-3.5-3.5-3.5zm0 1c1.39 0 2.5 1.11 2.5 2.5 0 .66-.24 1.27-.66 1.72-.01.01-.02.02-.03.03a1 1 0 0 0-.13.13c-.44.4-1.04.63-1.69.63-1.39 0-2.5-1.11-2.5-2.5s1.11-2.5 2.5-2.5z"
|
||||||
|
/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 450 B |
|
@ -1,4 +1,4 @@
|
||||||
import { Form, useLoaderData, useParams, redirect } from "react-router-dom";
|
import { Form, useLoaderData, useParams, redirect, useNavigate } from "react-router-dom";
|
||||||
import PageHeader from "../Components/PageHeader";
|
import PageHeader from "../Components/PageHeader";
|
||||||
import { requestEdit } from "../APIcalls.mjs";
|
import { requestEdit } from "../APIcalls.mjs";
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ export async function action({request,params}){
|
||||||
|
|
||||||
|
|
||||||
export default function EditPublication(){
|
export default function EditPublication(){
|
||||||
|
const navigate = useNavigate()
|
||||||
const { publicationId } = useParams()
|
const { publicationId } = useParams()
|
||||||
const { publications } = useLoaderData()
|
const { publications } = useLoaderData()
|
||||||
const publicationData = publications.find(row=>row.id==publicationId)
|
const publicationData = publications.find(row=>row.id==publicationId)
|
||||||
|
@ -44,7 +45,7 @@ export default function EditPublication(){
|
||||||
</label>
|
</label>
|
||||||
<div id="bottom-button-container">
|
<div id="bottom-button-container">
|
||||||
<button type="submit">SAVE</button>
|
<button type="submit">SAVE</button>
|
||||||
<button type="button">CANCEL</button>
|
<button type="button" onClick={()=>{navigate("/publications")}}>CANCEL</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</Form>
|
</Form>
|
||||||
|
|
|
@ -12,7 +12,7 @@ const handleChange = (event) => {
|
||||||
}
|
}
|
||||||
return(
|
return(
|
||||||
<>
|
<>
|
||||||
<div id="page-container">
|
<div id="page-container" className="vertical-center">
|
||||||
<Form >
|
<Form >
|
||||||
<h2>Which publication would you like to edit?</h2>
|
<h2>Which publication would you like to edit?</h2>
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Form, useLoaderData, useParams, redirect } from "react-router-dom";
|
import { Form, useLoaderData, useParams, redirect, useNavigate } from "react-router-dom";
|
||||||
import PageHeader from "../Components/PageHeader";
|
import PageHeader from "../Components/PageHeader";
|
||||||
import { requestEdit } from "../APIcalls.mjs";
|
import { requestEdit } from "../APIcalls.mjs";
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ export async function action({request,params}){
|
||||||
|
|
||||||
|
|
||||||
export default function EditStory(){
|
export default function EditStory(){
|
||||||
|
const navigate = useNavigate()
|
||||||
const { storyId } = useParams()
|
const { storyId } = useParams()
|
||||||
const { stories } = useLoaderData()
|
const { stories } = useLoaderData()
|
||||||
const storyData = stories.find(row=>row.id==storyId)
|
const storyData = stories.find(row=>row.id==storyId)
|
||||||
|
@ -44,7 +45,7 @@ export default function EditStory(){
|
||||||
</label>
|
</label>
|
||||||
<div id="bottom-button-container">
|
<div id="bottom-button-container">
|
||||||
<button type="submit">SAVE</button>
|
<button type="submit">SAVE</button>
|
||||||
<button type="button">CANCEL</button>
|
<button type="button" onClick={()=>{navigate("/stories")}}>CANCEL</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</Form>
|
</Form>
|
||||||
|
|
|
@ -12,7 +12,7 @@ const handleChange = (event) => {
|
||||||
}
|
}
|
||||||
return(
|
return(
|
||||||
<>
|
<>
|
||||||
<div id="page-container">
|
<div id="page-container" className="vertical-center">
|
||||||
<Form >
|
<Form >
|
||||||
<h2>Which story would you like to edit?</h2>
|
<h2>Which story would you like to edit?</h2>
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Form, useLoaderData, useParams, redirect } from "react-router-dom";
|
import { Form, useLoaderData, useParams, redirect, useNavigate } from "react-router-dom";
|
||||||
import PageHeader from "../Components/PageHeader";
|
import PageHeader from "../Components/PageHeader";
|
||||||
import { requestEdit } from "../APIcalls.mjs";
|
import { requestEdit } from "../APIcalls.mjs";
|
||||||
import Dropdown from "../Components/Dropdown";
|
import Dropdown from "../Components/Dropdown";
|
||||||
|
@ -17,6 +17,7 @@ export async function action({request,params}){
|
||||||
|
|
||||||
|
|
||||||
export default function EditSubmission(){
|
export default function EditSubmission(){
|
||||||
|
const navigate = useNavigate()
|
||||||
const { submissionId } = useParams()
|
const { submissionId } = useParams()
|
||||||
const { submissions, stories, publications, responses } = useLoaderData()
|
const { submissions, stories, publications, responses } = useLoaderData()
|
||||||
const submissionData = submissions.find(row=>row.id==submissionId)
|
const submissionData = submissions.find(row=>row.id==submissionId)
|
||||||
|
@ -64,7 +65,7 @@ export default function EditSubmission(){
|
||||||
</label>
|
</label>
|
||||||
<div id="bottom-button-container">
|
<div id="bottom-button-container">
|
||||||
<button type="submit">SAVE</button>
|
<button type="submit">SAVE</button>
|
||||||
<button type="button">CANCEL</button>
|
<button type="button" onClick={()=>{navigate("/submissions")}}>CANCEL</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</Form>
|
</Form>
|
||||||
|
|
|
@ -12,7 +12,7 @@ const handleChange = (event) => {
|
||||||
}
|
}
|
||||||
return(
|
return(
|
||||||
<>
|
<>
|
||||||
<div id="page-container">
|
<div id="page-container" className="vertical-center">
|
||||||
<Form >
|
<Form >
|
||||||
<h2>Which submission would you like to edit?</h2>
|
<h2>Which submission would you like to edit?</h2>
|
||||||
<label>Date submitted:
|
<label>Date submitted:
|
||||||
|
|
|
@ -10,20 +10,23 @@ export default function Publication() {
|
||||||
const publicationData = publications.find(row => row.id == publicationId)
|
const publicationData = publications.find(row => row.id == publicationId)
|
||||||
return (
|
return (
|
||||||
<> <div id="page-container">
|
<> <div id="page-container">
|
||||||
<PageHeader super={'Publication#' + publicationId} heading={publicationData.title} url="/publication" id={publicationId}/>
|
<PageHeader super={'Publication#' + publicationId} heading={publicationData.title} url="/publication" id={publicationId} />
|
||||||
<div>
|
<div id="page-info-container">
|
||||||
Link:
|
<div>
|
||||||
<a href={publicationData.link}>{publicationData.link}</a>
|
Link:
|
||||||
|
<a href={publicationData.link}>{publicationData.link}</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Table data={publicationData.submissions}
|
<Table data={publicationData.submissions}
|
||||||
filterList={[...filterList,'publication']}
|
filterList={[...filterList, 'publication']}
|
||||||
highlights={highlights}
|
highlights={highlights}
|
||||||
clickables={clickables}
|
clickables={clickables}
|
||||||
sortByDefault='date_submitted'
|
sortByDefault='date_submitted'
|
||||||
header='Submissions:'
|
header='Submissions:'
|
||||||
></Table>
|
></Table>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
|
@ -13,8 +13,11 @@ export default function Story() {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div id="page-container">
|
<div id="page-container">
|
||||||
<PageHeader super={'Story#' + storyId} heading={storyData.title} url="/story" id={storyId}/>
|
<PageHeader super={'Story#' + storyId} heading={storyData.title} url="/story" id={storyId} />
|
||||||
<div>Wordcount: {storyData.word_count}</div>
|
<div id="page-info-container">
|
||||||
|
<div>Wordcount: {storyData.word_count}</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
<Table
|
<Table
|
||||||
data={storyData.submissions}
|
data={storyData.submissions}
|
||||||
filterList={[...filterList, 'story']}
|
filterList={[...filterList, 'story']}
|
||||||
|
|
|
@ -27,8 +27,24 @@
|
||||||
#icon-container a{
|
#icon-container a{
|
||||||
padding:0;
|
padding:0;
|
||||||
}
|
}
|
||||||
|
#h-container{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-content:center;
|
||||||
|
}
|
||||||
|
#page-header h2{
|
||||||
|
display:block;
|
||||||
|
max-width: fit-content;
|
||||||
|
}
|
||||||
#page-header h1{
|
#page-header h1{
|
||||||
|
line-height: 1em;
|
||||||
|
display:block;
|
||||||
font-size:6rem;
|
font-size:6rem;
|
||||||
text-shadow: var(--text-shadow-light);
|
text-shadow: var(--text-shadow-light);
|
||||||
margin-right: 5rem;
|
margin-right: 5rem;
|
||||||
|
max-width:20ch;
|
||||||
|
overflow:hidden;
|
||||||
|
text-overflow:ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,8 +1,12 @@
|
||||||
|
#table-container{
|
||||||
|
width: fit-content;
|
||||||
|
margin: auto;
|
||||||
|
margin-top: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
table{
|
table{
|
||||||
font-size: 1.6rem;
|
font-size: 1.6rem;
|
||||||
width: fit-content;
|
|
||||||
margin: auto;
|
|
||||||
--odd-color:var(--color-2);
|
--odd-color:var(--color-2);
|
||||||
--even-color:var(--color-3);
|
--even-color:var(--color-3);
|
||||||
--alert-color:var(--accent)
|
--alert-color:var(--accent)
|
||||||
|
|
|
@ -87,3 +87,9 @@ html {
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
margin:auto;
|
margin:auto;
|
||||||
}
|
}
|
||||||
|
#page-info-container{
|
||||||
|
margin: 4rem 0;
|
||||||
|
}
|
||||||
|
.vertical-center{
|
||||||
|
padding-top: 20rem;
|
||||||
|
}
|
Loading…
Reference in New Issue