fixes to get this to build using 'npm run build'
This commit is contained in:
@@ -22,11 +22,11 @@ export default function PrivacyPolicy() {
|
||||
<section>
|
||||
<h2 className="mb-4 text-xl font-semibold">1. Introduction</h2>
|
||||
<p>
|
||||
Battl Builder ("we," "us," "our," or "Company") respects your privacy
|
||||
Battl Builder ("we," "us," "our," or "Company") respects your privacy
|
||||
and is committed to protecting it through this Privacy Policy. This
|
||||
policy explains our practices regarding the collection, use, and
|
||||
protection of your personal information when you access our website
|
||||
and use our services (the "Service").
|
||||
and use our services (the "Service").
|
||||
</p>
|
||||
<p className="mt-4">
|
||||
Please read this Privacy Policy carefully. If you do not agree with
|
||||
@@ -331,7 +331,7 @@ export default function PrivacyPolicy() {
|
||||
|
||||
{/* 10. Children's Privacy */}
|
||||
<section>
|
||||
<h2 className="mb-4 text-xl font-semibold">10. Children's Privacy</h2>
|
||||
<h2 className="mb-4 text-xl font-semibold">10. Children's Privacy</h2>
|
||||
<p>
|
||||
The Service is not intended for users under 18 years of age. We do not
|
||||
knowingly collect personal information from children under 18.
|
||||
@@ -339,7 +339,7 @@ export default function PrivacyPolicy() {
|
||||
<p className="mt-4">
|
||||
If we become aware that we have collected information from a child
|
||||
under 18, we will delete such information immediately and terminate the
|
||||
child's account.
|
||||
child's account.
|
||||
</p>
|
||||
<p className="mt-4">
|
||||
If you believe we have collected information from a child under 18,
|
||||
@@ -392,7 +392,7 @@ export default function PrivacyPolicy() {
|
||||
</p>
|
||||
<p className="mt-4">
|
||||
We will notify you of material changes by posting the updated policy
|
||||
here and updating the "Last Updated" date. Your continued use of the
|
||||
here and updating the "Last Updated" date. Your continued use of the
|
||||
Service following the posting of changes constitutes your acceptance
|
||||
of the updated Privacy Policy.
|
||||
</p>
|
||||
@@ -415,7 +415,7 @@ export default function PrivacyPolicy() {
|
||||
<p>
|
||||
<strong>Mailing Address:</strong>
|
||||
<br />
|
||||
Battl Builder, Inc.
|
||||
Battl Builder, LLC.
|
||||
<br />
|
||||
[Your Address]
|
||||
<br />
|
||||
|
||||
@@ -5,6 +5,7 @@ import Link from "next/link";
|
||||
import { useParams, useRouter } from "next/navigation";
|
||||
import { useAuth } from "@/context/AuthContext";
|
||||
import { useApi } from "@/lib/api";
|
||||
import Image from "next/image";
|
||||
|
||||
type BuildDto = {
|
||||
uuid: string;
|
||||
@@ -556,7 +557,7 @@ export default function VaultBuildEditPage() {
|
||||
✕
|
||||
</button>
|
||||
|
||||
<img
|
||||
<Image
|
||||
src={p.url}
|
||||
alt="Pending upload"
|
||||
className="h-32 w-full object-cover"
|
||||
@@ -573,7 +574,7 @@ export default function VaultBuildEditPage() {
|
||||
key={p.uuid}
|
||||
className="overflow-hidden rounded-lg border border-white/10 bg-black/20"
|
||||
>
|
||||
<img
|
||||
<Image
|
||||
src={p.url}
|
||||
alt={p.caption ?? "Build photo"}
|
||||
className="h-32 w-full object-cover"
|
||||
|
||||
@@ -123,24 +123,26 @@ export function BulkBar(props: {
|
||||
runBulk(patch);
|
||||
};
|
||||
|
||||
const footer = useMemo(() => {
|
||||
let footer: JSX.Element;
|
||||
// eslint-disable-next-line react-hooks/rules-of-hooks
|
||||
footer = useMemo(() => {
|
||||
return (
|
||||
<div className="flex items-center justify-between gap-2">
|
||||
<div className="text-sm text-white/60">
|
||||
Selected: <span className="font-semibold text-white">{selectedCount}</span>
|
||||
</div>
|
||||
<div className="flex items-center justify-between gap-2">
|
||||
<div className="text-sm text-white/60">
|
||||
Selected: <span className="font-semibold text-white">{selectedCount}</span>
|
||||
</div>
|
||||
|
||||
<button
|
||||
className="rounded-md bg-emerald-600 px-3 py-2 text-sm font-semibold hover:bg-emerald-500 disabled:opacity-50"
|
||||
disabled={disabled}
|
||||
onClick={() => {
|
||||
applyFieldChanges();
|
||||
setOpen(false);
|
||||
}}
|
||||
>
|
||||
Apply changes
|
||||
</button>
|
||||
</div>
|
||||
<button
|
||||
className="rounded-md bg-emerald-600 px-3 py-2 text-sm font-semibold hover:bg-emerald-500 disabled:opacity-50"
|
||||
disabled={disabled}
|
||||
onClick={() => {
|
||||
applyFieldChanges();
|
||||
setOpen(false);
|
||||
}}
|
||||
>
|
||||
Apply changes
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
}, [applyFieldChanges, disabled, selectedCount]);
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
import Link from "next/link";
|
||||
import PlatformSwitcher from "./PlatformSwitcher";
|
||||
import Image from "next/image";
|
||||
|
||||
const API_BASE_URL = process.env.NEXT_PUBLIC_API_BASE_URL ?? "http://localhost:8080";
|
||||
|
||||
@@ -138,10 +139,16 @@ export default function PartsListPageClient(props: {
|
||||
className="group rounded-lg border border-zinc-800 bg-black/30 p-3 hover:border-zinc-700"
|
||||
>
|
||||
<div className="flex gap-3">
|
||||
<div className="h-16 w-16 overflow-hidden rounded-md border border-zinc-800 bg-zinc-950">
|
||||
<div className="relative h-16 w-16 overflow-hidden rounded-md border border-zinc-800 bg-zinc-950">
|
||||
{/* eslint-disable-next-line @next/next/no-img-element */}
|
||||
{p.imageUrl ? (
|
||||
<img src={p.imageUrl} alt={p.name} className="h-full w-full object-cover" />
|
||||
<Image
|
||||
src={p.imageUrl}
|
||||
alt={p.name}
|
||||
fill
|
||||
sizes="64px"
|
||||
className="object-cover"
|
||||
/>
|
||||
) : (
|
||||
<div className="h-full w-full grid place-items-center text-xs text-zinc-600">
|
||||
—
|
||||
@@ -175,4 +182,4 @@ export default function PartsListPageClient(props: {
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# Stage 1: Build the static assets
|
||||
FROM node:20-alpine as builder
|
||||
WORKDIR /app
|
||||
COPY package.json package-lock.json ./
|
||||
RUN npm install
|
||||
COPY . .
|
||||
# Run the Next.js build command
|
||||
RUN npm run build
|
||||
|
||||
# Stage 2: Run the production application (Next.js server)
|
||||
FROM node:20-alpine
|
||||
WORKDIR /app
|
||||
# Copy only the necessary files for running the app
|
||||
COPY --from=builder /app/.next ./.next
|
||||
COPY --from=builder /app/node_modules ./node_modules
|
||||
COPY --from=builder /app/package.json ./package.json
|
||||
COPY --from=builder /app/public ./public
|
||||
# Set environment variables
|
||||
ENV NODE_ENV production
|
||||
EXPOSE 3000
|
||||
# Run the Next.js production server
|
||||
CMD ["npm", "start"]
|
||||
Reference in New Issue
Block a user