diff --git a/firebase.json b/firebase.json
index 4fd74e4..57c8adc 100644
--- a/firebase.json
+++ b/firebase.json
@@ -15,6 +15,15 @@
}
]
},
+ {
+ "source": "**/*.html",
+ "headers": [
+ {
+ "key": "X-Robots-Tag",
+ "value": "noindex, nofollow"
+ }
+ ]
+ },
{
"source": "**/*.@(jpg|jpeg|gif|png)",
"headers": [
diff --git a/public/index.html b/public/index.html
index 89c63b8..9bf756c 100644
--- a/public/index.html
+++ b/public/index.html
@@ -28,7 +28,7 @@
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
-
醇忆 Grad Mag
+ 醇憶 Grad Mag
diff --git a/public/manifest.json b/public/manifest.json
index cbc4bd7..c0c840d 100644
--- a/public/manifest.json
+++ b/public/manifest.json
@@ -1,5 +1,5 @@
{
- "short_name": "醇忆 Grad Mag",
+ "short_name": "醇憶 Grad Mag",
"name": "KMPk 16/17 Grad Mag",
"icons": [
{
diff --git a/src/components/common/BannerImage/index.tsx b/src/components/common/BannerImage/index.tsx
new file mode 100644
index 0000000..a9f18e3
--- /dev/null
+++ b/src/components/common/BannerImage/index.tsx
@@ -0,0 +1,28 @@
+import CloudResponsiveImg from "components/common/CloudResponsiveImg";
+import React from "react";
+
+interface BannerImageProps {
+ fileName: string;
+ className?: string;
+ imgProps?: React.DetailedHTMLProps<
+ React.ImgHTMLAttributes,
+ HTMLImageElement
+ >;
+}
+
+const BannerImage: React.FC = ({
+ fileName,
+ className,
+ imgProps,
+}) => {
+ return (
+
+ );
+};
+
+export default BannerImage;
diff --git a/src/components/common/CloudResponsiveImg/index.tsx b/src/components/common/CloudResponsiveImg/index.tsx
new file mode 100644
index 0000000..eda264c
--- /dev/null
+++ b/src/components/common/CloudResponsiveImg/index.tsx
@@ -0,0 +1,40 @@
+import React from "react";
+
+interface CloudResponsiveImgProps {
+ folderPath: string;
+ fileName: string;
+ className?: string;
+ imgProps?: React.DetailedHTMLProps<
+ React.ImgHTMLAttributes,
+ HTMLImageElement
+ >;
+}
+
+const STORAGE_HOST = "https://storage.googleapis.com/ourpromise.appspot.com";
+
+const CloudResponsiveImg: React.FC = ({
+ folderPath,
+ fileName,
+ className,
+ imgProps,
+}) => {
+ const uriEncodedFileName = encodeURI(fileName);
+ const path = `${STORAGE_HOST}/${folderPath}`;
+ return (
+
+ );
+};
+
+export default CloudResponsiveImg;
diff --git a/src/components/styled/index.tsx b/src/components/styled/index.tsx
index 933cc8e..4aca087 100644
--- a/src/components/styled/index.tsx
+++ b/src/components/styled/index.tsx
@@ -1,3 +1,4 @@
+import { CardContent } from "@mui/material";
import IconButton from "@mui/material/IconButton";
import { styled } from "@mui/material/styles";
import { Link as ReactRouterLink } from "react-router-dom";
@@ -15,3 +16,10 @@ export const ContainedIconButton = styled(IconButton)(({ theme }) => ({
backgroundColor: theme.palette.background.paper,
},
}));
+
+export const StyledCardContent = styled(CardContent)(({ theme }) => ({
+ padding: `${theme.spacing(1)} ${theme.spacing(2)}`,
+ "&:last-child": {
+ paddingBottom: theme.spacing(1),
+ },
+}));
diff --git a/src/layout/Footer.tsx b/src/layout/Footer.tsx
index b22d028..23e947e 100644
--- a/src/layout/Footer.tsx
+++ b/src/layout/Footer.tsx
@@ -22,7 +22,7 @@ const classes = {
const Root = styled("footer")(({ theme }) => ({
[`&.${classes.footer}`]: {
position: "relative",
- marginTop: "64px",
+ marginTop: 80,
height: "256px",
maxWidth: "100vw",
backgroundImage: `url(${FooterImg})`,
@@ -78,7 +78,7 @@ function Footer() {