+News Articles, Members, Mission, Initiatives

This commit is contained in:
Michael Fatemi 2020-11-25 10:33:19 -05:00
commit 769cd1fc86
22 changed files with 8711 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
node_modules/
dist

9
README.md Normal file
View File

@ -0,0 +1,9 @@
# Sanity Clean Content Studio
Congratulations, you have now installed the Sanity Content Studio, an open source real-time content editing environment connected to the Sanity backend.
Now you can do the following things:
- [Read “getting started” in the docs](https://www.sanity.io/docs/introduction/getting-started?utm_source=readme)
- [Join the community Slack](https://slack.sanity.io/?utm_source=readme)
- [Extend and build plugins](https://www.sanity.io/docs/content-studio/extending?utm_source=readme)

7
config/.checksums Normal file
View File

@ -0,0 +1,7 @@
{
"#": "Used by Sanity to keep track of configuration file checksums, do not delete or modify!",
"@sanity/default-layout": "bb034f391ba508a6ca8cd971967cbedeb131c4d19b17b28a0895f32db5d568ea",
"@sanity/default-login": "6fb6d3800aa71346e1b84d95bbcaa287879456f2922372bb0294e30b968cd37f",
"@sanity/form-builder": "b38478227ba5e22c91981da4b53436df22e48ff25238a55a973ed620be5068aa",
"@sanity/data-aspects": "d199e2c199b3e26cd28b68dc84d7fc01c9186bf5089580f2e2446994d36b3cb6"
}

View File

@ -0,0 +1,3 @@
{
"listOptions": {}
}

View File

@ -0,0 +1,6 @@
{
"toolSwitcher": {
"order": [],
"hidden": []
}
}

View File

@ -0,0 +1,7 @@
{
"providers": {
"mode": "append",
"redirectOnSingle": false,
"entries": []
}
}

View File

@ -0,0 +1,5 @@
{
"images": {
"directUploads": true
}
}

30
package.json Normal file
View File

@ -0,0 +1,30 @@
{
"name": "tjsgawebsite",
"private": true,
"version": "1.0.0",
"description": "",
"main": "package.json",
"author": "Michael Fatemi <myfatemi04@gmail.com>",
"license": "UNLICENSED",
"scripts": {
"start": "sanity start",
"test": "sanity check",
"build": "sanity build"
},
"keywords": [
"sanity"
],
"dependencies": {
"@sanity/base": "^2.0.9",
"@sanity/components": "^2.0.9",
"@sanity/core": "^2.0.9",
"@sanity/default-layout": "^2.0.9",
"@sanity/default-login": "^2.0.9",
"@sanity/desk-tool": "^2.0.9",
"@sanity/vision": "^2.0.9",
"prop-types": "^15.7",
"react": "^17.0",
"react-dom": "^17.0"
},
"devDependencies": {}
}

1
plugins/.gitkeep Normal file
View File

@ -0,0 +1 @@
User-specific packages can be placed here

29
sanity-structure.js Normal file
View File

@ -0,0 +1,29 @@
import S from '@sanity/desk-tool/structure-builder';
const notSingletonPage = listItem => ![
"mission",
"footer"
].includes(listItem.getId())
export default () =>
S.list()
.title("Content")
.items([
S.listItem()
.title("Mission")
.child(
S.editor()
.id("mission")
.schemaType("mission")
.documentId("mission")
),
S.listItem()
.title("Footer")
.child(
S.editor()
.id("footer")
.schemaType("footer")
.documentId("footer")
),
...S.documentTypeListItems().filter(notSingletonPage)
]);

34
sanity.json Normal file
View File

@ -0,0 +1,34 @@
{
"root": true,
"project": {
"name": "TJ SGA Website"
},
"api": {
"projectId": "yi263kzm",
"dataset": "production"
},
"plugins": [
"@sanity/base",
"@sanity/components",
"@sanity/default-layout",
"@sanity/default-login",
"@sanity/desk-tool"
],
"env": {
"development": {
"plugins": [
"@sanity/vision"
]
}
},
"parts": [
{
"name": "part:@sanity/base/schema",
"path": "./schemas/schema"
},
{
"name": "part:@sanity/desk-tool/structure",
"path": "./sanity-structure.js"
}
]
}

28
schemas/article.js Normal file
View File

@ -0,0 +1,28 @@
export default {
name: "article",
title: "News Article",
type: "document",
fields: [
{
name: "title",
title: "Title",
type: "string"
},
{
name: "thumbnail",
title: "Thumbnail",
type: "image"
},
{
name: "publish_date",
title: "Publish date",
type: "date"
},
{
name: "content",
title: "Content",
type: "array",
of: [{type: "block"}]
}
]
};

31
schemas/footer.js Normal file
View File

@ -0,0 +1,31 @@
export default {
name: "footer",
title: "Footer",
type: "document",
__experimental_actions: [ 'update', 'publish', 'create' ], // removing 'delete'
fields: [
{
name: "columns",
title: "Columns",
type: "array",
of: [{
name: "column",
title: "Column",
type: "document",
fields: [
{
name: "title",
title: "Title",
type: "string"
},
{
name: "links",
title: "Links",
type: "array",
of: [{type: "string"}]
}
]
}]
}
]
}

22
schemas/get_involved.js Normal file
View File

@ -0,0 +1,22 @@
export default {
name: "get_involved",
title: "Way to get involved",
type: "document",
fields: [
{
name: "title",
title: "Title",
type: "string"
},
{
name: "text",
title: "Text",
type: "text"
},
{
name: "priority",
title: "Priority",
type: "number"
}
]
}

23
schemas/initiative.js Normal file
View File

@ -0,0 +1,23 @@
export default {
name: "initiative",
title: "Initiative",
type: "document",
fields: [
{
name: "name",
title: "Name",
type: "string"
},
{
name: "thumbnail",
title: "Thumbnail",
type: "image"
},
{
name: "content",
title: "Content",
type: "array",
of: [{type: "block"}]
}
]
}

38
schemas/member.js Normal file
View File

@ -0,0 +1,38 @@
export default {
name: "member",
title: "Member",
type: "document",
fields: [
{
name: "name",
title: "Name",
type: "string"
},
{
name: "year",
title: "Graduating Year",
type: "string"
},
{
name: "committee",
title: "Committee (excomm or steering)",
type: "string",
validation: Rule => Rule.regex(/^(excomm|steering)$/)
},
{
name: "role",
title: "Role",
type: "string"
},
{
name: "profile_photo",
title: "Profile Photo",
type: "image"
},
{
name: "bio",
title: "Bio",
type: "text"
}
]
};

28
schemas/mission.js Normal file
View File

@ -0,0 +1,28 @@
export default {
name: "mission",
title: "Mission",
type: "document",
__experimental_actions: [ 'update', 'publish', 'create' ], // removing 'delete'
fields: [
{
name: "mission",
title: "Mission",
type: "text"
},
{
name: "vision",
title: "Vision",
type: "text"
},
{
name: "quote_text",
title: "Quote text",
type: "string"
},
{
name: "quote_author",
title: "Quote author",
type: "string"
}
]
}

29
schemas/schema.js Normal file
View File

@ -0,0 +1,29 @@
// First, we must import the schema creator
import createSchema from 'part:@sanity/base/schema-creator'
// Then import schema types from any plugins that might expose them
import schemaTypes from 'all:part:@sanity/base/schema-type'
// Custom schemas
import article from './article';
import footer from './footer';
import get_involved from './get_involved';
import initiative from './initiative';
import member from './member';
import mission from './mission';
// Then we give our schema to the builder and provide the result to Sanity
export default createSchema({
// We name our schema
name: 'default',
// Then proceed to concatenate our document type
// to the ones provided by any plugins that are installed
types: schemaTypes.concat([
article,
footer,
get_involved,
initiative,
member,
mission
]),
})

1
static/.gitkeep Normal file
View File

@ -0,0 +1 @@
Files placed here will be served by the Sanity server under the `/static`-prefix

BIN
static/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

6
tsconfig.json Normal file
View File

@ -0,0 +1,6 @@
{
// Note: This config is only used to help editors like VS Code understand/resolve
// parts, the actual transpilation is done by babel. Any compiler configuration in
// here will be ignored.
"include": ["./node_modules/@sanity/base/types/**/*.ts", "./**/*.ts", "./**/*.tsx"]
}

8372
yarn.lock Normal file

File diff suppressed because it is too large Load Diff