Spaces:
Sleeping
Sleeping
Improve mobile UI
Browse files- Dockerfile +3 -3
- README.md +13 -2
- src/components/Header.tsx +6 -5
Dockerfile
CHANGED
@@ -19,8 +19,8 @@ RUN npm run build
|
|
19 |
# Install serve
|
20 |
RUN npm install -g serve
|
21 |
|
22 |
-
# Expose port
|
23 |
-
EXPOSE
|
24 |
|
25 |
# Start server
|
26 |
-
CMD ["serve", "-s", "dist", "-l", "
|
|
|
19 |
# Install serve
|
20 |
RUN npm install -g serve
|
21 |
|
22 |
+
# Expose port 8080
|
23 |
+
EXPOSE 8080
|
24 |
|
25 |
# Start server
|
26 |
+
CMD ["serve", "-s", "dist", "-l", "8080"]
|
README.md
CHANGED
@@ -5,6 +5,7 @@ colorFrom: gray
|
|
5 |
colorTo: blue
|
6 |
sdk: docker
|
7 |
pinned: false
|
|
|
8 |
---
|
9 |
|
10 |
# AI Conference Deadlines
|
@@ -100,10 +101,10 @@ docker build -t ai-deadlines .
|
|
100 |
Next it can be run as follows:
|
101 |
|
102 |
```bash
|
103 |
-
docker run -it -p
|
104 |
```
|
105 |
|
106 |
-
You can see it in your web browser at http://localhost:
|
107 |
|
108 |
## Technologies used
|
109 |
|
@@ -115,6 +116,16 @@ This project is built with:
|
|
115 |
- shadcn-ui
|
116 |
- Tailwind CSS
|
117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
## License
|
119 |
|
120 |
This project is licensed under [MIT](LICENSE).
|
|
|
5 |
colorTo: blue
|
6 |
sdk: docker
|
7 |
pinned: false
|
8 |
+
app_port: 8080
|
9 |
---
|
10 |
|
11 |
# AI Conference Deadlines
|
|
|
101 |
Next it can be run as follows:
|
102 |
|
103 |
```bash
|
104 |
+
docker run -it -p 8080:8080 ai-deadlines
|
105 |
```
|
106 |
|
107 |
+
You can see it in your web browser at http://localhost:8080/.
|
108 |
|
109 |
## Technologies used
|
110 |
|
|
|
116 |
- shadcn-ui
|
117 |
- Tailwind CSS
|
118 |
|
119 |
+
## Deploy on the cloud
|
120 |
+
|
121 |
+
One way to deploy this on a cloud is by using [Artifact Registry](https://cloud.google.com/artifact-registry/docs) (for hosting the Docker image) and [Cloud Run](https://cloud.google.com/run?hl=en) (a serverless service by Google to run Docker containers). Make sure to have the [gcloud SDK installed](https://cloud.google.com/sdk/docs/install). To deploy, simply run:
|
122 |
+
|
123 |
+
```bash
|
124 |
+
gcloud auth login
|
125 |
+
gcloud auth application-default login
|
126 |
+
gcloud run deploy --source .
|
127 |
+
```
|
128 |
+
|
129 |
## License
|
130 |
|
131 |
This project is licensed under [MIT](LICENSE).
|
src/components/Header.tsx
CHANGED
@@ -12,8 +12,8 @@ const Header = ({ onSearch, showEmptyMessage = false }: HeaderProps) => {
|
|
12 |
return (
|
13 |
<header className="bg-white border-b border-neutral-200">
|
14 |
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
15 |
-
<div className="flex items-center justify-between h-16">
|
16 |
-
<div className="flex items-center gap-8">
|
17 |
<Link to="/" className="flex items-center gap-2">
|
18 |
<img
|
19 |
src="https://huggingface.co/front/assets/huggingface_logo.svg"
|
@@ -21,7 +21,8 @@ const Header = ({ onSearch, showEmptyMessage = false }: HeaderProps) => {
|
|
21 |
className="h-8 w-8"
|
22 |
/>
|
23 |
<span className="text-2xl font-bold text-primary">
|
24 |
-
AI Conference Deadlines
|
|
|
25 |
</span>
|
26 |
</Link>
|
27 |
<nav className="hidden md:flex space-x-4">
|
@@ -34,7 +35,7 @@ const Header = ({ onSearch, showEmptyMessage = false }: HeaderProps) => {
|
|
34 |
</Link>
|
35 |
</nav>
|
36 |
</div>
|
37 |
-
<div className="max-w-lg
|
38 |
<div className="relative">
|
39 |
<div className="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
|
40 |
<Search className="h-5 w-5 text-neutral-400" />
|
@@ -42,7 +43,7 @@ const Header = ({ onSearch, showEmptyMessage = false }: HeaderProps) => {
|
|
42 |
<Input
|
43 |
type="search"
|
44 |
placeholder="Search conferences..."
|
45 |
-
className="pl-10"
|
46 |
onChange={(e) => onSearch(e.target.value)}
|
47 |
/>
|
48 |
</div>
|
|
|
12 |
return (
|
13 |
<header className="bg-white border-b border-neutral-200">
|
14 |
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
15 |
+
<div className="flex flex-col md:flex-row md:items-center md:justify-between md:h-16 py-4 md:py-0 gap-4 md:gap-0">
|
16 |
+
<div className="flex items-center justify-center md:justify-start w-full md:w-auto gap-8">
|
17 |
<Link to="/" className="flex items-center gap-2">
|
18 |
<img
|
19 |
src="https://huggingface.co/front/assets/huggingface_logo.svg"
|
|
|
21 |
className="h-8 w-8"
|
22 |
/>
|
23 |
<span className="text-2xl font-bold text-primary">
|
24 |
+
<span className="hidden md:inline">AI Conference Deadlines</span>
|
25 |
+
<span className="md:hidden">AI Deadlines</span>
|
26 |
</span>
|
27 |
</Link>
|
28 |
<nav className="hidden md:flex space-x-4">
|
|
|
35 |
</Link>
|
36 |
</nav>
|
37 |
</div>
|
38 |
+
<div className="w-full md:max-w-lg lg:max-w-xs">
|
39 |
<div className="relative">
|
40 |
<div className="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
|
41 |
<Search className="h-5 w-5 text-neutral-400" />
|
|
|
43 |
<Input
|
44 |
type="search"
|
45 |
placeholder="Search conferences..."
|
46 |
+
className="pl-10 w-full"
|
47 |
onChange={(e) => onSearch(e.target.value)}
|
48 |
/>
|
49 |
</div>
|