Fix login 401, admin permission, video links serialization, and admin UI styling

- Fix UserInfo boolean field naming (isAdmin → admin) for proper Jackson/MyBatis mapping
- Configure Google OAuth audience with actual client ID to fix token verification
- Parse CLOB fields and convert Oracle TIMESTAMP in restaurant video links API
- Add explicit bg-white/text-gray-900 to admin page inputs, selects, and table headers
- Add keyPrefix to RestaurantList to avoid duplicate React keys across desktop/mobile

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
joungmin
2026-03-09 21:41:57 +09:00
parent c16add08c3
commit 16bd83c570
9 changed files with 51 additions and 37 deletions

View File

@@ -9,6 +9,7 @@ interface RestaurantListProps {
selectedId?: string;
onSelect: (r: Restaurant) => void;
loading?: boolean;
keyPrefix?: string;
}
export default function RestaurantList({
@@ -16,6 +17,7 @@ export default function RestaurantList({
selectedId,
onSelect,
loading,
keyPrefix = "",
}: RestaurantListProps) {
if (loading) {
return <RestaurantListSkeleton />;
@@ -33,7 +35,7 @@ export default function RestaurantList({
<div className="p-3 space-y-2">
{restaurants.map((r) => (
<button
key={r.id}
key={`${keyPrefix}${r.id}`}
onClick={() => onSelect(r)}
className={`w-full text-left p-3 rounded-xl shadow-sm border transition-all hover:shadow-md hover:-translate-y-0.5 ${
selectedId === r.id