Skip to content

Commit 5c6f731

Browse files
authored
Merge branch 'main' into main
2 parents 983d8cb + 4de125a commit 5c6f731

File tree

5 files changed

+153
-7
lines changed

5 files changed

+153
-7
lines changed

.env.exmaple

-2
This file was deleted.

package-lock.json

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"eslint-plugin-react-hooks": "^4.6.2",
3636
"eslint-plugin-react-refresh": "^0.4.6",
3737
"postcss": "^8.4.45",
38-
"tailwindcss": "^3.4.10",
38+
"tailwindcss": "^3.4.14",
3939
"typescript": "^5.2.2",
4040
"vite": "^5.2.10",
4141
"vite-plugin-pwa": "^0.20.0",

src/routeTree.gen.ts

+25
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { Route as MapIndexImport } from './routes/map/index'
1818
import { Route as EventsIndexImport } from './routes/events/index'
1919
import { Route as DinnerIndexImport } from './routes/dinner/index'
2020
import { Route as CalendarIndexImport } from './routes/calendar/index'
21+
import { Route as SalesAddsellImport } from './routes/sales/add_sell'
2122
import { Route as HomeInfoCardImport } from './routes/home/infoCard'
2223
import { Route as EventsSelectImport } from './routes/events/select'
2324
import { Route as EventsCreateImport } from './routes/events/create'
@@ -60,6 +61,11 @@ const CalendarIndexRoute = CalendarIndexImport.update({
6061
getParentRoute: () => rootRoute,
6162
} as any)
6263

64+
const SalesAddsellRoute = SalesAddsellImport.update({
65+
path: '/sales/add_sell',
66+
getParentRoute: () => rootRoute,
67+
} as any)
68+
6369
const HomeInfoCardRoute = HomeInfoCardImport.update({
6470
path: '/home/infoCard',
6571
getParentRoute: () => rootRoute,
@@ -126,6 +132,13 @@ declare module '@tanstack/react-router' {
126132
preLoaderRoute: typeof HomeInfoCardImport
127133
parentRoute: typeof rootRoute
128134
}
135+
'/sales/add_sell': {
136+
id: '/sales/add_sell'
137+
path: '/sales/add_sell'
138+
fullPath: '/sales/add_sell'
139+
preLoaderRoute: typeof SalesAddsellImport
140+
parentRoute: typeof rootRoute
141+
}
129142
'/calendar/': {
130143
id: '/calendar/'
131144
path: '/calendar'
@@ -173,6 +186,7 @@ export interface FileRoutesByFullPath {
173186
'/events/create': typeof EventsCreateRoute
174187
'/events/select': typeof EventsSelectRoute
175188
'/home/infoCard': typeof HomeInfoCardRoute
189+
'/sales/add_sell': typeof SalesAddsellRoute
176190
'/calendar': typeof CalendarIndexRoute
177191
'/dinner': typeof DinnerIndexRoute
178192
'/events': typeof EventsIndexRoute
@@ -187,6 +201,7 @@ export interface FileRoutesByTo {
187201
'/events/create': typeof EventsCreateRoute
188202
'/events/select': typeof EventsSelectRoute
189203
'/home/infoCard': typeof HomeInfoCardRoute
204+
'/sales/add_sell': typeof SalesAddsellRoute
190205
'/calendar': typeof CalendarIndexRoute
191206
'/dinner': typeof DinnerIndexRoute
192207
'/events': typeof EventsIndexRoute
@@ -202,6 +217,7 @@ export interface FileRoutesById {
202217
'/events/create': typeof EventsCreateRoute
203218
'/events/select': typeof EventsSelectRoute
204219
'/home/infoCard': typeof HomeInfoCardRoute
220+
'/sales/add_sell': typeof SalesAddsellRoute
205221
'/calendar/': typeof CalendarIndexRoute
206222
'/dinner/': typeof DinnerIndexRoute
207223
'/events/': typeof EventsIndexRoute
@@ -218,6 +234,7 @@ export interface FileRouteTypes {
218234
| '/events/create'
219235
| '/events/select'
220236
| '/home/infoCard'
237+
| '/sales/add_sell'
221238
| '/calendar'
222239
| '/dinner'
223240
| '/events'
@@ -231,6 +248,7 @@ export interface FileRouteTypes {
231248
| '/events/create'
232249
| '/events/select'
233250
| '/home/infoCard'
251+
| '/sales/add_sell'
234252
| '/calendar'
235253
| '/dinner'
236254
| '/events'
@@ -244,6 +262,7 @@ export interface FileRouteTypes {
244262
| '/events/create'
245263
| '/events/select'
246264
| '/home/infoCard'
265+
| '/sales/add_sell'
247266
| '/calendar/'
248267
| '/dinner/'
249268
| '/events/'
@@ -259,6 +278,7 @@ export interface RootRouteChildren {
259278
EventsCreateRoute: typeof EventsCreateRoute
260279
EventsSelectRoute: typeof EventsSelectRoute
261280
HomeInfoCardRoute: typeof HomeInfoCardRoute
281+
SalesAddsellRoute: typeof SalesAddsellRoute
262282
CalendarIndexRoute: typeof CalendarIndexRoute
263283
DinnerIndexRoute: typeof DinnerIndexRoute
264284
EventsIndexRoute: typeof EventsIndexRoute
@@ -273,6 +293,7 @@ const rootRouteChildren: RootRouteChildren = {
273293
EventsCreateRoute: EventsCreateRoute,
274294
EventsSelectRoute: EventsSelectRoute,
275295
HomeInfoCardRoute: HomeInfoCardRoute,
296+
SalesAddsellRoute: SalesAddsellRoute,
276297
CalendarIndexRoute: CalendarIndexRoute,
277298
DinnerIndexRoute: DinnerIndexRoute,
278299
EventsIndexRoute: EventsIndexRoute,
@@ -298,6 +319,7 @@ export const routeTree = rootRoute
298319
"/events/create",
299320
"/events/select",
300321
"/home/infoCard",
322+
"/sales/add_sell",
301323
"/calendar/",
302324
"/dinner/",
303325
"/events/",
@@ -323,6 +345,9 @@ export const routeTree = rootRoute
323345
"/home/infoCard": {
324346
"filePath": "home/infoCard.tsx"
325347
},
348+
"/sales/add_sell": {
349+
"filePath": "sales/add_sell.tsx"
350+
},
326351
"/calendar/": {
327352
"filePath": "calendar/index.tsx"
328353
},

src/routes/sales/add_sell.tsx

+123
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
import { createFileRoute } from '@tanstack/react-router';
2+
import { Heart } from 'flowbite-react-icons/outline';
3+
import { Header } from '../../components';
4+
import { AuthGuard } from '../../utils/auth';
5+
import { supabase } from '../../utils/supabase';
6+
7+
const styles = {
8+
container: {
9+
flex: 1,
10+
backgroundColor: '#333',
11+
},
12+
searchSection: {
13+
display: 'flex',
14+
alignItems: 'center',
15+
padding: 4,
16+
backgroundColor: '#333',
17+
},
18+
searchInput: {
19+
flex: 1,
20+
marginLeft: 8,
21+
marginRight: 8,
22+
backgroundColor: '#f0f0f0',
23+
borderRadius: 5,
24+
padding: 4,
25+
},
26+
categories: {
27+
display: 'inline',
28+
padding: 5,
29+
},
30+
categoryButton: {
31+
paddingLeft: 8,
32+
paddingRight: 8,
33+
margin: 2,
34+
backgroundColor: '#888',
35+
borderRadius: 12,
36+
color: 'black',
37+
},
38+
grid: {
39+
padding: '10px',
40+
display: 'flex',
41+
gap: '10px',
42+
justifyContent: 'space-between',
43+
},
44+
card: {
45+
flex: '1 1 calc(25% - 10px)',
46+
maxWidth: 'calc(25% - 10px)',
47+
marginBottom: '10px',
48+
padding: '10px',
49+
backgroundColor: '#555',
50+
borderRadius: '10px',
51+
color: 'white'
52+
},
53+
productName: {
54+
fontSize: 16,
55+
color: 'white',
56+
},
57+
productInfo: {
58+
fontSize: 14,
59+
color: 'gray',
60+
},
61+
icon: {
62+
alignSelf: 'flex-end',
63+
},
64+
fab: {
65+
position: 'absolute',
66+
bottom: 20,
67+
right: 20,
68+
backgroundColor: '#6200ee',
69+
width: 60,
70+
height: 60,
71+
borderRadius: 30,
72+
justifyContent: 'center',
73+
alignItems: 'center',
74+
},
75+
};
76+
77+
export const Route = createFileRoute('/sales/add_sell')({
78+
beforeLoad: AuthGuard,
79+
loader: async () => {
80+
const { data, error } = await supabase
81+
.from('sales')
82+
.select('*')
83+
if (error !== null) {
84+
throw error
85+
}
86+
87+
return { sales: data }
88+
},
89+
component: EventSale
90+
})
91+
function EventSale() {
92+
const { sales } = Route.useLoaderData()
93+
return (
94+
<>
95+
<Header />
96+
<div className="container mx-auto">
97+
<textarea className="textarea textarea-primary w-full h-7 text-lg py-3" placeholder="Search..."></textarea>
98+
<div style={styles.categories}>
99+
<button style={styles.categoryButton}>全部</button>
100+
<button style={styles.categoryButton}>五金</button>
101+
<button style={styles.categoryButton}>飲料</button>
102+
<button style={styles.categoryButton}>贈品</button>
103+
</div>
104+
<div className='w-full py-6 px-3'>
105+
<h1 className='text-white font-bold text-2xl'>拍賣</h1>
106+
<div className='grid grid-cols-2 gap-1'>
107+
{ sales.map((p) => (
108+
<div key={p.id} className='h-80 p-10 bg-stone-500 hover:bg-stone-600 active:bg-stone-700 focus:outline-none focus:ring focus:ring-violet-300 scale-90 hover:scale-100 relative'>
109+
<h1 className='text-slate-50 font-semibold text-xl absolute left-1 bottom-7'>{p.product}</h1>
110+
<Heart size={24} />
111+
<h1 className='text-slate-300 font-semibold text-xl absolute left-1 bottom-1'>{p.price}</h1>
112+
</div>
113+
114+
)
115+
)
116+
}
117+
</div>
118+
</div>
119+
</div>
120+
</>
121+
)
122+
}
123+

0 commit comments

Comments
 (0)