diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..f9a17d6
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,64 @@
+image: docker:latest
+services:
+ - docker:dind
+
+stages:
+ - build_docker
+ - deploy
+
+variables:
+ DOCKER_HOST: "tcp://docker:2375"
+ DOCKER_TLS_CERTDIR: ""
+ DOCKER_DRIVER: overlay2
+ RESTART_ONLY:
+ value: "false"
+ description: "Change to 'true' if you want to restart application only."
+
+.update_env_only_exceptions:
+ only:
+ variables:
+ - $RESTART_ONLY != 'true'
+
+.docker-build:
+ image: bentolor/docker-dind-awscli
+ stage: build_docker
+ tags:
+ - docker
+ environment:
+ name: ${CI_COMMIT_REF_NAME}
+ script:
+ - cp "$DOCKER_ENV_VARIABLES" ./.env.local
+ - docker build -t $DOCKER_REGISTRY:$DOCKER_TAG .
+ - aws ecr get-login-password | docker login --username AWS --password-stdin $DOCKER_REGISTRY
+ - docker push $DOCKER_REGISTRY:$DOCKER_TAG
+
+.deploy:
+ image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest
+ stage: deploy
+ tags:
+ - docker
+ environment:
+ name: ${CI_COMMIT_REF_NAME}
+ script:
+ - echo "sciagam i porownuje zmienne srodowiskowe"
+ - cp "$DOCKER_ENV_VARIABLES" ./local_$ECS_SERVICE.env
+ - aws s3 cp s3://$AWS_DOCKER_ENV_VARIABLES_BUCKET/$ECS_SERVICE/.env aws_$ECS_SERVICE.env || touch aws_$ECS_SERVICE.env
+ - cmp -s local_$ECS_SERVICE.env aws_$ECS_SERVICE.env || aws s3 cp local_$ECS_SERVICE.env s3://$AWS_DOCKER_ENV_VARIABLES_BUCKET/$ECS_SERVICE/.env
+ - aws ecs update-service --cluster $ECS_CLUSTER --service $ECS_SERVICE --force-new-deployment
+
+docker-build:
+ extends:
+ - .update_env_only_exceptions
+ - .docker-build
+ only:
+ refs:
+ - develop
+ - master
+
+deploy:
+ extends:
+ - .deploy
+ only:
+ refs:
+ - develop
+ - master
diff --git a/Dockerfile b/Dockerfile
index 60f2235..3d1d999 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,7 +1,8 @@
FROM node:20-alpine AS base
WORKDIR /app
COPY . .
-RUN npm i
+RUN npm install -g pnpm
+RUN pnpm i
EXPOSE 3000
diff --git a/next.config.mjs b/next.config.mjs
index 021b699..96083f5 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -22,6 +22,7 @@ const nextConfig = {
},
{
test: /\.svg$/i,
+ issuer: /.[jt]sx?$/,
resourceQuery: { not: /url/ }, // exclude if *.svg?url
use: ['@svgr/webpack']
}
diff --git a/package.json b/package.json
index 3fc470a..7ede47b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "smart-beaver-wizard",
- "version": "0.1.0",
+ "version": "0.2.0",
"private": true,
"husky": {
"hooks": {
@@ -33,7 +33,7 @@
"debounce": "^2.0.0",
"highlight.js": "^11.9.0",
"husky": "^8.0.3",
- "ink-generator": "^0.3.3",
+ "ink-generator": "^0.3.5",
"next": "14.0.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 02ec55d..ae3b66a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -39,8 +39,8 @@ dependencies:
specifier: ^8.0.3
version: 8.0.3
ink-generator:
- specifier: ^0.3.3
- version: 0.3.3
+ specifier: ^0.3.5
+ version: 0.3.5
next:
specifier: 14.0.0
version: 14.0.0(@babel/core@7.23.3)(react-dom@18.2.0)(react@18.2.0)
@@ -3479,8 +3479,8 @@ packages:
/inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- /ink-generator@0.3.3:
- resolution: {integrity: sha512-W51bFFLChgN1uxU94VpqYqubMWRqD5RMPHcGsg1m3ODG3JQPAuOclSdwaUjvxNN4TSNPN6ebirA/wMAL+6d5cQ==}
+ /ink-generator@0.3.5:
+ resolution: {integrity: sha512-lwG1zzlNrBputifYZnp4f8HltDRO+3t9JRlibGaCzE/4crdZ0pz8W+3XK7tfNZLtsB3VMQScdYLtiQjjoLhBcw==}
dev: false
/internal-slot@1.0.6:
diff --git a/src/assets/icons/github.svg b/src/assets/icons/github.svg
new file mode 100644
index 0000000..d43b83e
--- /dev/null
+++ b/src/assets/icons/github.svg
@@ -0,0 +1,8 @@
+
diff --git a/src/components/analitics/GoogleTagManager.tsx b/src/components/analitics/GoogleTagManager.tsx
new file mode 100644
index 0000000..06a0646
--- /dev/null
+++ b/src/components/analitics/GoogleTagManager.tsx
@@ -0,0 +1,37 @@
+'use client';
+import Script from 'next/script';
+import { env } from '@/env/env.mjs';
+
+const GoogleTagManager: React.FC = () => {
+ if (env.NEXT_PUBLIC_ENVIRONMENT !== 'production') {
+ return null;
+ }
+
+ return (
+ <>
+
+
+ >
+ );
+};
+
+export default GoogleTagManager;
diff --git a/src/components/data-entry/CheckboxChip.tsx b/src/components/data-entry/CheckboxChip.tsx
index 3663a3b..eb08c49 100644
--- a/src/components/data-entry/CheckboxChip.tsx
+++ b/src/components/data-entry/CheckboxChip.tsx
@@ -6,9 +6,10 @@ import { dictionary } from '@/libs/en';
interface CheckboxChipProps {
label: string;
name: string;
+ disabled?: boolean;
}
-export function CheckboxChip({ label, name }: CheckboxChipProps) {
+export function CheckboxChip({ label, name, disabled }: CheckboxChipProps) {
const { register } = useFormContext();
const {
@@ -18,10 +19,12 @@ export function CheckboxChip({ label, name }: CheckboxChipProps) {
return (
-
+