Compare commits
No commits in common. "eb6acef7e456aa826508854525e631fa63b94144" and "5c9a72c139d052861b7b512d244f0651cc574407" have entirely different histories.
eb6acef7e4
...
5c9a72c139
|
|
@ -1,4 +1,3 @@
|
|||
node_modules/
|
||||
.cache/
|
||||
public/
|
||||
.env
|
||||
|
|
|
|||
|
|
@ -12,8 +12,6 @@
|
|||
"gatsby-plugin-sass": "^5.7.0",
|
||||
"react": "^17.0.1",
|
||||
"react-dom": "^17.0.1",
|
||||
"react-google-recaptcha": "^3.1.0",
|
||||
"react-simple-captcha": "^9.3.1",
|
||||
"sass": "^1.49.7"
|
||||
}
|
||||
},
|
||||
|
|
@ -9136,15 +9134,6 @@
|
|||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||
},
|
||||
"node_modules/hoist-non-react-statics": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
|
||||
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"react-is": "^16.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/hosted-git-info": {
|
||||
"version": "3.0.8",
|
||||
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz",
|
||||
|
|
@ -12300,19 +12289,6 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-async-script": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-async-script/-/react-async-script-1.2.0.tgz",
|
||||
"integrity": "sha512-bCpkbm9JiAuMGhkqoAiC0lLkb40DJ0HOEJIku+9JDjxX3Rcs+ztEOG13wbrOskt3n2DTrjshhaQ/iay+SnGg5Q==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"hoist-non-react-statics": "^3.3.0",
|
||||
"prop-types": "^15.5.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.4.1"
|
||||
}
|
||||
},
|
||||
"node_modules/react-dev-utils": {
|
||||
"version": "12.0.1",
|
||||
"resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
|
||||
|
|
@ -12508,19 +12484,6 @@
|
|||
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
|
||||
"integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
|
||||
},
|
||||
"node_modules/react-google-recaptcha": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-google-recaptcha/-/react-google-recaptcha-3.1.0.tgz",
|
||||
"integrity": "sha512-cYW2/DWas8nEKZGD7SCu9BSuVz8iOcOLHChHyi7upUuVhkpkhYG/6N3KDiTQ3XAiZ2UAZkfvYKMfAHOzBOcGEg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"prop-types": "^15.5.0",
|
||||
"react-async-script": "^1.2.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.4.1"
|
||||
}
|
||||
},
|
||||
"node_modules/react-is": {
|
||||
"version": "16.13.1",
|
||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
||||
|
|
@ -12539,106 +12502,6 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-simple-captcha": {
|
||||
"version": "9.3.1",
|
||||
"resolved": "https://registry.npmjs.org/react-simple-captcha/-/react-simple-captcha-9.3.1.tgz",
|
||||
"integrity": "sha512-pQ/WKjXns9ukhjjbaSZhl2P0QygHs50N9hxMmPAiFMh+0xXt2AocvSsEe24LyW/eOzOso+2Ifiuym/TZMyYDsA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"react-html-parser": "^2.0.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/react-simple-captcha/node_modules/dom-serializer": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
|
||||
"integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"domelementtype": "^2.0.1",
|
||||
"entities": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-simple-captcha/node_modules/dom-serializer/node_modules/domelementtype": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
|
||||
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/fb55"
|
||||
}
|
||||
],
|
||||
"license": "BSD-2-Clause"
|
||||
},
|
||||
"node_modules/react-simple-captcha/node_modules/dom-serializer/node_modules/entities": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
|
||||
"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
|
||||
"license": "BSD-2-Clause",
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/entities?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/react-simple-captcha/node_modules/domelementtype": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
|
||||
"integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
|
||||
"license": "BSD-2-Clause"
|
||||
},
|
||||
"node_modules/react-simple-captcha/node_modules/domhandler": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
|
||||
"integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
|
||||
"license": "BSD-2-Clause",
|
||||
"dependencies": {
|
||||
"domelementtype": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/react-simple-captcha/node_modules/domutils": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
|
||||
"integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
|
||||
"license": "BSD-2-Clause",
|
||||
"dependencies": {
|
||||
"dom-serializer": "0",
|
||||
"domelementtype": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/react-simple-captcha/node_modules/entities": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
|
||||
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
|
||||
"license": "BSD-2-Clause"
|
||||
},
|
||||
"node_modules/react-simple-captcha/node_modules/htmlparser2": {
|
||||
"version": "3.10.1",
|
||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
|
||||
"integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"domelementtype": "^1.3.1",
|
||||
"domhandler": "^2.3.0",
|
||||
"domutils": "^1.5.1",
|
||||
"entities": "^1.1.1",
|
||||
"inherits": "^2.0.1",
|
||||
"readable-stream": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/react-simple-captcha/node_modules/react-html-parser": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/react-html-parser/-/react-html-parser-2.0.2.tgz",
|
||||
"integrity": "sha512-XeerLwCVjTs3njZcgCOeDUqLgNIt/t+6Jgi5/qPsO/krUWl76kWKXMeVs2LhY2gwM6X378DkhLjur0zUQdpz0g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"htmlparser2": "^3.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^0.14.0 || ^15.0.0 || ^16.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/read": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
|
||||
|
|
@ -22319,14 +22182,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"hoist-non-react-statics": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
|
||||
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
|
||||
"requires": {
|
||||
"react-is": "^16.7.0"
|
||||
}
|
||||
},
|
||||
"hosted-git-info": {
|
||||
"version": "3.0.8",
|
||||
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz",
|
||||
|
|
@ -24749,15 +24604,6 @@
|
|||
"object-assign": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"react-async-script": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-async-script/-/react-async-script-1.2.0.tgz",
|
||||
"integrity": "sha512-bCpkbm9JiAuMGhkqoAiC0lLkb40DJ0HOEJIku+9JDjxX3Rcs+ztEOG13wbrOskt3n2DTrjshhaQ/iay+SnGg5Q==",
|
||||
"requires": {
|
||||
"hoist-non-react-statics": "^3.3.0",
|
||||
"prop-types": "^15.5.0"
|
||||
}
|
||||
},
|
||||
"react-dev-utils": {
|
||||
"version": "12.0.1",
|
||||
"resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
|
||||
|
|
@ -24895,15 +24741,6 @@
|
|||
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
|
||||
"integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
|
||||
},
|
||||
"react-google-recaptcha": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-google-recaptcha/-/react-google-recaptcha-3.1.0.tgz",
|
||||
"integrity": "sha512-cYW2/DWas8nEKZGD7SCu9BSuVz8iOcOLHChHyi7upUuVhkpkhYG/6N3KDiTQ3XAiZ2UAZkfvYKMfAHOzBOcGEg==",
|
||||
"requires": {
|
||||
"prop-types": "^15.5.0",
|
||||
"react-async-script": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"react-is": {
|
||||
"version": "16.13.1",
|
||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
||||
|
|
@ -24919,85 +24756,6 @@
|
|||
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
|
||||
"integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ=="
|
||||
},
|
||||
"react-simple-captcha": {
|
||||
"version": "9.3.1",
|
||||
"resolved": "https://registry.npmjs.org/react-simple-captcha/-/react-simple-captcha-9.3.1.tgz",
|
||||
"integrity": "sha512-pQ/WKjXns9ukhjjbaSZhl2P0QygHs50N9hxMmPAiFMh+0xXt2AocvSsEe24LyW/eOzOso+2Ifiuym/TZMyYDsA==",
|
||||
"requires": {
|
||||
"react-html-parser": "^2.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"dom-serializer": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
|
||||
"integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
|
||||
"requires": {
|
||||
"domelementtype": "^2.0.1",
|
||||
"entities": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"domelementtype": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
|
||||
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
|
||||
},
|
||||
"entities": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
|
||||
"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"domelementtype": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
|
||||
"integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
|
||||
},
|
||||
"domhandler": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
|
||||
"integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
|
||||
"requires": {
|
||||
"domelementtype": "1"
|
||||
}
|
||||
},
|
||||
"domutils": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
|
||||
"integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
|
||||
"requires": {
|
||||
"dom-serializer": "0",
|
||||
"domelementtype": "1"
|
||||
}
|
||||
},
|
||||
"entities": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
|
||||
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
|
||||
},
|
||||
"htmlparser2": {
|
||||
"version": "3.10.1",
|
||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
|
||||
"integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
|
||||
"requires": {
|
||||
"domelementtype": "^1.3.1",
|
||||
"domhandler": "^2.3.0",
|
||||
"domutils": "^1.5.1",
|
||||
"entities": "^1.1.1",
|
||||
"inherits": "^2.0.1",
|
||||
"readable-stream": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"react-html-parser": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/react-html-parser/-/react-html-parser-2.0.2.tgz",
|
||||
"integrity": "sha512-XeerLwCVjTs3njZcgCOeDUqLgNIt/t+6Jgi5/qPsO/krUWl76kWKXMeVs2LhY2gwM6X378DkhLjur0zUQdpz0g==",
|
||||
"requires": {
|
||||
"htmlparser2": "^3.9.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"read": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
|
||||
|
|
|
|||
|
|
@ -19,8 +19,6 @@
|
|||
"gatsby-plugin-sass": "^5.7.0",
|
||||
"react": "^17.0.1",
|
||||
"react-dom": "^17.0.1",
|
||||
"react-google-recaptcha": "^3.1.0",
|
||||
"react-simple-captcha": "^9.3.1",
|
||||
"sass": "^1.49.7"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ import WorkSiiLogo from "../images/work_sii_logo.png"
|
|||
import WorkInfinidatLogo from "../images/work_infinidat_logo.png"
|
||||
import WorkTechemLogo from "../images/work_techem_logo.png"
|
||||
import WorkAdobeLogo from "../images/work_adobe_logo_2.png"
|
||||
import WorkAptivLogo from "../images/work_aptiv_logo.png"
|
||||
|
||||
import InterestsBlockchainLogo from "../images/interests_blockchain_logo.png"
|
||||
import InterestsBlenderLogo from "../images/interests_blender_logo.png"
|
||||
|
|
@ -29,12 +28,11 @@ export const content_pl = [
|
|||
type: "generalTitleSegment",
|
||||
title: "Kamil Żuk",
|
||||
image: MePng,
|
||||
content_language: "pl",
|
||||
content: {
|
||||
"E-mail": "zukkamil.44@gmail.com",
|
||||
"Telefon": "+48 570 688 112",
|
||||
"Git": "git.00x097.com/tbs093a",
|
||||
"Github": "git.00x097.com/tbs093a",
|
||||
"Wykształcenie": "Wyższe / Inżynier",
|
||||
"Miejsce Zamieszkania": "Rzeszów / Polska",
|
||||
"Data Urodzenia": "30.06.1997 r.",
|
||||
}
|
||||
},
|
||||
|
|
@ -361,11 +359,12 @@ export const content_pl = [
|
|||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Inside Projects - DevOps Engineer & Python Developer - from 01.11.2024 to 11.02.2025",
|
||||
title: "Inside Projects - DevOps Engineer & Python Developer - from 01.11.2024",
|
||||
image: WorkSiiLogo,
|
||||
branchBorderColor: "#0464a8",
|
||||
mainBorderColor: "#0464a8",
|
||||
content: [
|
||||
"Ulepszanie bot'a inwestycyjnego pod automatyczne inwestowanie wyzwalane zewnętrznymi wiadomościami / sygnałami (Python / Mexc API / Kucoin API / Telegram API / OpenAI API)",
|
||||
"Konserwacja inrastruktury (Terrafrom / Azure / Hetzner)",
|
||||
"Konserwacja infrastruktury mikroserwisowej (Docker / Kubernetes / Helm)",
|
||||
"Konserwacja serwerów (Linux)",
|
||||
|
|
@ -379,25 +378,6 @@ export const content_pl = [
|
|||
branchBorderColor: "#0464a8",
|
||||
mainBorderColor: "#0464a8",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Aptiv PLC - DevOps Engineer - from 11.02.2025",
|
||||
image: WorkAptivLogo,
|
||||
branchBorderColor: "#000000",
|
||||
mainBorderColor: "#0464a8",
|
||||
content: [
|
||||
"Konserwacja & Ulepszanie pipeline'ów & job'ów (Jenkins / Wind River Studio / Python / Bash / GitGerrit)",
|
||||
"Automtizacja ręcznych zadań (Jenkins / Wind River Studio / Python / Bash / GitGerrit)",
|
||||
"Praca z mikroserwisami (Docker / Kubernetes)",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#000000",
|
||||
mainBorderColor: "#0464a8",
|
||||
},
|
||||
{
|
||||
type: "titleSegment",
|
||||
title: "Zainteresowania",
|
||||
|
|
@ -441,12 +421,11 @@ export const content_en = [
|
|||
type: "generalTitleSegment",
|
||||
title: "Kamil Żuk",
|
||||
image: MePng,
|
||||
content_language: "en",
|
||||
content: {
|
||||
"E-mail": "zukkamil.44@gmail.com",
|
||||
"Phone": "+48 570 688 112",
|
||||
"Git": "git.00x097.com/tbs093a",
|
||||
"Github": "git.00x097.com/tbs093a",
|
||||
"Education": "Higher / Engineer",
|
||||
"Place of Residence": "Rzeszów / Poland",
|
||||
"Date of Birth": "30.06.1997",
|
||||
}
|
||||
},
|
||||
|
|
@ -471,36 +450,12 @@ export const content_en = [
|
|||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Aptiv PLC - DevOps Engineer - from 11.02.2025",
|
||||
image: WorkAptivLogo,
|
||||
branchBorderColor: "#000000",
|
||||
mainBorderColor: "#0464a8",
|
||||
content: [
|
||||
"Pipelines & Jobs maintenance & improvements (Jenkins / Wind River Studio / Python / Bash / GitGerrit)",
|
||||
"Automtization of manual tasks (Jenkins / Wind River Studio / Python / Bash / GitGerrit)",
|
||||
"Work with microservices (Docker / Kubernetes)",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#000000",
|
||||
mainBorderColor: "#0464a8",
|
||||
},
|
||||
{
|
||||
type: "createBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#0464a8",
|
||||
mainBorderColor: "#0464a8",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Inside Projects - DevOps Engineer & Python Developer - from 01.11.2024 to 11.02.2025",
|
||||
title: "Inside Projects - DevOps Engineer & Python Developer - from 01.11.2024",
|
||||
image: WorkSiiLogo,
|
||||
branchBorderColor: "#0464a8",
|
||||
mainBorderColor: "#0464a8",
|
||||
content: [
|
||||
"Improving crypto / stock exchange bot for automatic investment triggered by outside messages / signals (Python / Mexc API / Kucoin API / Telegram API / OpenAI API)",
|
||||
"Inrastructure maintenance (Terrafrom / Azure / Hetzner)",
|
||||
"Microservices infrastructure maintenance (Docker / Kubernetes / Helm)",
|
||||
"Servers maintenance (Linux)",
|
||||
|
|
@ -711,234 +666,25 @@ export const content_en = [
|
|||
noElements: true,
|
||||
content: [],
|
||||
},
|
||||
{
|
||||
type: "titleSegment",
|
||||
title: "Other Projects",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 0,
|
||||
title: "DevOps",
|
||||
image: "",
|
||||
branchBorderColor: "#04009b",
|
||||
mainBorderColor: null,
|
||||
firstElement: true,
|
||||
content: [],
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "K8S Cluster on Bare Metal Servers (Hetzner / Terraform / Kubespray)",
|
||||
image: "",
|
||||
branchBorderColor: "#8b0000",
|
||||
mainBorderColor: "#04009b",
|
||||
content: [
|
||||
"Maintenance of 3 nodes cluster (Hetzner / Terraform / Ansible / Kubespray)",
|
||||
"K8S objects management (Helm / Terraform)",
|
||||
"Hosting & Administration & Maintenance of internal & external services (Jenkins / Gitea / Wordpress & Customized Software)",
|
||||
"Hosting & Administration & Maintenance of databases & Caching solutions (PostgreSQL / MariaDb / Elasticsearch / Redis)",
|
||||
"Hosting & Administration & Maintenance of storage solutions (Minio)",
|
||||
"Routine operations automation (Jenkins / Groovy Scripts / Ansible / Bash / Python)",
|
||||
"Applications exposure to internet (Ingress / Cert-Manager / MetalLB)",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#8b0000",
|
||||
mainBorderColor: "#04009b",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Others",
|
||||
image: "",
|
||||
branchBorderColor: "#008b78",
|
||||
mainBorderColor: "#04009b",
|
||||
content: [
|
||||
"DevOps Blog (Wordpress): https://blog.00x097.com/",
|
||||
"Linux Auto-Configuration (custom dotfiles integration) (Ansible / Bash / ZSH), repository: https://git.00x097.com/tbs093a/linux.config",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#008b78",
|
||||
mainBorderColor: "#04009b",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 0,
|
||||
title: "Programming",
|
||||
image: "",
|
||||
branchBorderColor: "#ffd748",
|
||||
mainBorderColor: null,
|
||||
firstElement: true,
|
||||
content: [],
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "XGPU - Application for Sharing Distributed GPU Resources for Scheduling & Executing AI Training & 3D Rendering Tasks",
|
||||
image: "",
|
||||
branchBorderColor: "#005707",
|
||||
mainBorderColor: "#ffd748",
|
||||
content: [
|
||||
"Backend based on FastAPI Framework (Python) with REST (Account Management / Objects CRUD) & WebSocket APIs (Tasks Scheduling & Executing & Monitoring)",
|
||||
"External Worker Script based on Python & Bash - connected to backend via WebSocket",
|
||||
"External Worker Tasks Scheduling & Executing & Monitoring via WebSocket API",
|
||||
"External Worker AI Training based on NCCL DDP (Distributed Data Parallel) (PyTorch) & 3D Rendering based on Blender Rendering",
|
||||
"Database configuration & administration (PostgreSQL / MongoDB)",
|
||||
"CI/CD pipelines implementation (Jenkins / Groovy Scripts)",
|
||||
"Frontend based on ReactJS & Gatsby Framework",
|
||||
"Contenerisation based on Docker (locally) Manifests",
|
||||
"Contenerisation based on K8S (Bare Metal Servers - Hetzner) Manifests (Ingress / Cert-Manager / Deployments / PV & PVC / etc.)",
|
||||
"Working with AI Agents Tools (Cursor AI / Copilot)",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#005707",
|
||||
mainBorderColor: "#ffd748",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "AI Agents Preparation",
|
||||
image: "",
|
||||
branchBorderColor: "#005fc5",
|
||||
mainBorderColor: "#ffd748",
|
||||
content: [
|
||||
"AI Agent for video summarization based on generated transcript via provided URL (Telegram / youtube-transcript.io API / Python / OpenAI API)",
|
||||
"AI Agent for generate blog content based on provided plan in prompt (Wordpress / Telegram / Python / OpenAI API)",
|
||||
"AI Agent for crypto & stock market signals interpretation & auto trading (Telegram / Python / OpenAI API / Mexc API / Kucoin API / Binance API)",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#005fc5",
|
||||
mainBorderColor: "#ffd748",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Others",
|
||||
image: "",
|
||||
branchBorderColor: "#008b78",
|
||||
mainBorderColor: "#ffd748",
|
||||
content: [
|
||||
"Curriculum Vitae (CV) Generator (ReactJS / Gatsby) - example: https://cv.00x097.com/, repository: https://git.00x097.com/tbs093a/curriculum.vitae",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#008b78",
|
||||
mainBorderColor: "#ffd748",
|
||||
},
|
||||
{
|
||||
type: "titleSegment",
|
||||
title: "Courses & Certs",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 0,
|
||||
title: "DevOps",
|
||||
image: "",
|
||||
branchBorderColor: "#04009b",
|
||||
mainBorderColor: null,
|
||||
firstElement: true,
|
||||
content: [],
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Cloud Providers",
|
||||
image: "",
|
||||
branchBorderColor: "#005fc5",
|
||||
mainBorderColor: "#04009b",
|
||||
content: [
|
||||
"AZ-900: Microsoft Azure Fundamentals Exam Prep (Microsoft Certified: Azure Fundamentals) - Scott Duffy (TOGAF® Trainer, Microsoft Azure MVP)",
|
||||
"AZ-104: Microsoft Azure Administrator Exam Prep (Microsoft Certified: Azure Administrator Associate) - Scott Duffy (TOGAF® Trainer, Microsoft Azure MVP)",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#005fc5",
|
||||
mainBorderColor: "#04009b",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Infrastructure as Code",
|
||||
image: "",
|
||||
branchBorderColor: "#7b00ab",
|
||||
mainBorderColor: "#04009b",
|
||||
content: [
|
||||
"HashiCorp Certified: Terraform Associate - Hands-On Labs - Bryan Krausen (HashiCorp Ambassador) & Gabe Maentz (Authorized HashiCorp Instructor)",
|
||||
"HashiCorp Certified: Terraform Associate Practice Exam 2025 - Bryan Krausen (HashiCorp Ambassador)",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#7b00ab",
|
||||
mainBorderColor: "#04009b",
|
||||
},
|
||||
{
|
||||
type: "titleSegment",
|
||||
title: "Tech Skills",
|
||||
},{
|
||||
type: "workSubSegment",
|
||||
tabs: 0,
|
||||
title: "Programming",
|
||||
image: "",
|
||||
title: "Programming - Python",
|
||||
image: "", //SkillsPythonLogo,
|
||||
branchBorderColor: "#ffd748",
|
||||
mainBorderColor: null,
|
||||
firstElement: true,
|
||||
content: [],
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Coding & Scripting",
|
||||
image: "",
|
||||
branchBorderColor: "#6d3d00",
|
||||
mainBorderColor: "#ffd748",
|
||||
content: [
|
||||
"Python",
|
||||
"Bash / ZSH / Powershell",
|
||||
"Javascript (Pure JS / ReactJS)",
|
||||
"Django",
|
||||
"Django REST Framework",
|
||||
"Channels 3.0",
|
||||
"Celery (Task Manager)",
|
||||
"Asyncio",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#6d3d00",
|
||||
mainBorderColor: "#ffd748",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "LLM & Other AI Tools",
|
||||
image: "",
|
||||
branchBorderColor: "#8b0000",
|
||||
mainBorderColor: "#ffd748",
|
||||
content: [
|
||||
"Public LLMs (Claude / Gemini / ChatGPT)",
|
||||
"Local LLMs (Ollama - Bielik AI / DeepSeek)",
|
||||
"Coding Agents (Cursor AI / Copilot)",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#8b0000",
|
||||
mainBorderColor: "#ffd748",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 0,
|
||||
|
|
@ -956,11 +702,9 @@ export const content_en = [
|
|||
mainBorderColor: "#2e8cb1",
|
||||
content: [
|
||||
"Jenkins (CI/CD / Routine Processes Automatization (Job's) / GitOps)",
|
||||
"Ansible (Server Configuration Stuffs)",
|
||||
"Terraform / OpenTofu (Infrastructure as Code)",
|
||||
"Ansible (Automatization of servers & dev environments configuration)",
|
||||
"Bash / ZSH (Linux)",
|
||||
"Powershell (Windows)",
|
||||
"Python (Cross-Platform)",
|
||||
],
|
||||
},
|
||||
{
|
||||
|
|
@ -969,6 +713,45 @@ export const content_en = [
|
|||
branchBorderColor: "#4aa720",
|
||||
mainBorderColor: "#2e8cb1",
|
||||
},
|
||||
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Containerization",
|
||||
image: "", //SkillsContainersLogo,
|
||||
branchBorderColor: "#00b7ff",
|
||||
mainBorderColor: "#2e8cb1",
|
||||
content: [
|
||||
"Docker",
|
||||
"Docker-Compose (Microservices oriented on single servers or debug purposes)",
|
||||
"MiniKube (Local debugging K8S manifests)",
|
||||
"Kubernetes (Helm / Cert-Manager / Ingress / K9S)",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#00b7ff",
|
||||
mainBorderColor: "#2e8cb1",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Configuration",
|
||||
image: "", //SkillsNginxLogo,
|
||||
branchBorderColor: "#d90000",
|
||||
mainBorderColor: "#2e8cb1",
|
||||
content: [
|
||||
"Apache",
|
||||
"Nginx (https-portal)",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#d90000",
|
||||
mainBorderColor: "#2e8cb1",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
|
|
@ -980,7 +763,6 @@ export const content_en = [
|
|||
"Hetzner",
|
||||
"OVH",
|
||||
"AWS",
|
||||
"Azure",
|
||||
],
|
||||
},
|
||||
{
|
||||
|
|
@ -989,49 +771,6 @@ export const content_en = [
|
|||
branchBorderColor: "#f96900",
|
||||
mainBorderColor: "#2e8cb1",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Containerization",
|
||||
image: "", //SkillsContainersLogo,
|
||||
branchBorderColor: "#00b7ff",
|
||||
mainBorderColor: "#2e8cb1",
|
||||
content: [
|
||||
"Docker & Docker-Compose",
|
||||
"Podman",
|
||||
"Kubernetes (Kubespray / Helm / Cert-Manager / Ingress / K9S)",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#00b7ff",
|
||||
mainBorderColor: "#2e8cb1",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 1,
|
||||
title: "Reliability & Monitoring",
|
||||
image: "",
|
||||
branchBorderColor: "#000000",
|
||||
mainBorderColor: "#2e8cb1",
|
||||
content: [
|
||||
"Grafana",
|
||||
"Prometheus",
|
||||
"ElasticSearch",
|
||||
"Kibana",
|
||||
"Logstash",
|
||||
"New Relic",
|
||||
"Splunk",
|
||||
"Fluent-Bit",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "mergeBranchSegment",
|
||||
tabs: 1,
|
||||
branchBorderColor: "#000000",
|
||||
mainBorderColor: "#2e8cb1",
|
||||
},
|
||||
{
|
||||
type: "workSubSegment",
|
||||
tabs: 0,
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 7.1 KiB |
|
|
@ -2,89 +2,7 @@ import * as React from "react"
|
|||
import "../styles/general.scss"
|
||||
import { content_pl } from "../content/kamil"
|
||||
import { content_en } from "../content/kamil"
|
||||
import { loadCaptchaEnginge, LoadCanvasTemplate, validateCaptcha } from 'react-simple-captcha'
|
||||
|
||||
const SimpleCaptchaWrapper = ({ onVerified, language }) => {
|
||||
const [error, setError] = React.useState(null);
|
||||
|
||||
let content = {
|
||||
"pl": {
|
||||
"initial_information": "Wprowadź kod z obrazka aby wyświetlić informacje kontaktowe.",
|
||||
"captcha_console_initialization": "Błąd inicjalizacji captcha:",
|
||||
"captcha_ui_initialization": "Nie można załadować captcha",
|
||||
"captcha_console_reload": "Błąd przeładowania captcha:",
|
||||
"captcha_reload_button": "Odśwież kod",
|
||||
"captcha": "Wprowadź kod z obrazka",
|
||||
"button": "Potwierdź",
|
||||
"error": "Nieprawidłowy kod. Spróbuj ponownie.",
|
||||
},
|
||||
"en": {
|
||||
"initial_information": "Please enter the code from the image for display contact information.",
|
||||
"captcha_console_initialization": "Captcha initialization error:",
|
||||
"captcha_ui_initialization": "Cannot load captcha",
|
||||
"captcha_console_reload": "Captcha reload error:",
|
||||
"captcha_reload_button": "Reload code",
|
||||
"captcha": "Enter the code from the image",
|
||||
"button": "Confirm",
|
||||
"error": "Invalid code. Try again.",
|
||||
}
|
||||
}
|
||||
|
||||
React.useEffect(() => {
|
||||
try {
|
||||
loadCaptchaEnginge(6, '#242424', '#a6a6a6');
|
||||
} catch (err) {
|
||||
console.error(content[language].captcha_console_initialization, err);
|
||||
setError(content[language].captcha_ui_initialization);
|
||||
}
|
||||
}, []);
|
||||
|
||||
const handleSubmit = (e) => {
|
||||
e.preventDefault();
|
||||
const userCaptchaValue = document.getElementById('user_captcha_input').value;
|
||||
|
||||
if (validateCaptcha(userCaptchaValue)) {
|
||||
onVerified(true);
|
||||
setError(null);
|
||||
} else {
|
||||
setError(content[language].error);
|
||||
document.getElementById('user_captcha_input').value = "";
|
||||
// Przeładowanie captcha
|
||||
try {
|
||||
loadCaptchaEnginge(6, '#242424', '#a6a6a6');
|
||||
} catch (err) {
|
||||
console.error(content[language].captcha_console_reload, err);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="captcha-container">
|
||||
<div className="captcha-form">
|
||||
<p>
|
||||
{content[language].initial_information}
|
||||
</p>
|
||||
<LoadCanvasTemplate reloadText={content[language].captcha_reload_button} reloadColor="#a6a6a6" />
|
||||
<form onSubmit={handleSubmit}>
|
||||
<input
|
||||
type="text"
|
||||
placeholder={content[language].captcha}
|
||||
id="user_captcha_input"
|
||||
className="captcha-input"
|
||||
/>
|
||||
<button type="submit" className="captcha-button">
|
||||
{content[language].button}
|
||||
</button>
|
||||
</form>
|
||||
{error && (
|
||||
<div className="error-message">
|
||||
{error}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
const MiniWorkImage = ({ image }) => {
|
||||
return (
|
||||
|
|
@ -347,50 +265,56 @@ const SegmentMergeBranch = ({ segment, tabs }) => {
|
|||
|
||||
|
||||
const SegmentGeneral = ({ segment }) => {
|
||||
const [isVerified, setIsVerified] = React.useState(false);
|
||||
|
||||
return (
|
||||
<div className="segment_general">
|
||||
<div
|
||||
className="segment_general"
|
||||
>
|
||||
<img
|
||||
src={segment.image}
|
||||
src={ segment.image }
|
||||
className="segment_image cover"
|
||||
alt={segment.title}
|
||||
/>
|
||||
<div className="segment_title segment_title_image">
|
||||
{segment.title}
|
||||
{ segment.title }
|
||||
</div>
|
||||
{!isVerified ? (
|
||||
<SimpleCaptchaWrapper
|
||||
onVerified={setIsVerified}
|
||||
language={segment.content_language}
|
||||
/>
|
||||
) : (
|
||||
<div className="segment_content_image">
|
||||
{typeof segment.content === "object" ? (
|
||||
Object.keys(segment.content).map((key) => (
|
||||
<React.Fragment key={`item_${key}`}>
|
||||
<div className="segment_image_item">
|
||||
{key + ": "}
|
||||
{
|
||||
typeof segment.content === "object" ?
|
||||
Object.keys(segment.content).map( (key) => {
|
||||
return (
|
||||
<>
|
||||
<div
|
||||
className="segment_image_item"
|
||||
key={ "item_" + key }
|
||||
>
|
||||
|
||||
{ key + ": " }
|
||||
|
||||
</div>
|
||||
<div className="segment_image_item subitem">
|
||||
{segment.content[key].includes("git.") ? (
|
||||
<a href={`https://${segment.content[key]}`}>
|
||||
{segment.content[key]}
|
||||
<div
|
||||
className="segment_image_item subitem"
|
||||
>
|
||||
|
||||
{
|
||||
segment.content[key].includes("git.") ?
|
||||
<a href={ "https://" + segment.content[key] }>
|
||||
{ segment.content[key] }
|
||||
</a>
|
||||
) : (
|
||||
:
|
||||
segment.content[key]
|
||||
)}
|
||||
}
|
||||
|
||||
</div>
|
||||
</React.Fragment>
|
||||
))
|
||||
) : (
|
||||
</>
|
||||
)
|
||||
}
|
||||
)
|
||||
:
|
||||
"lol"
|
||||
)}
|
||||
}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
const SegmentRODO = ({ segment }) => {
|
||||
|
|
@ -407,61 +331,69 @@ const SegmentRODO = ({ segment }) => {
|
|||
|
||||
|
||||
const Segment = ({ index, segment }) => {
|
||||
const segment_index = "segment_" + index;
|
||||
|
||||
let segment_index = "segment_" + index
|
||||
|
||||
return (
|
||||
<div
|
||||
id={segment_index}
|
||||
key={segment_index}
|
||||
id={ segment_index }
|
||||
key={ segment_index }
|
||||
>
|
||||
{
|
||||
segment.type === "generalTitleSegment" ?
|
||||
<>
|
||||
<SegmentGeneral
|
||||
key={`general_${index}`}
|
||||
segment={segment}
|
||||
segment={ segment }
|
||||
/>
|
||||
</>
|
||||
:
|
||||
segment.type === "titleSegment" ?
|
||||
<>
|
||||
<SegmentTitle
|
||||
key={`title_${index}`}
|
||||
segment={segment}
|
||||
segment={ segment }
|
||||
/>
|
||||
</>
|
||||
:
|
||||
segment.type === "subSegment" ?
|
||||
<>
|
||||
<SegmentListNormal
|
||||
key={`normal_${index}`}
|
||||
segment={segment}
|
||||
tabs={segment.tabs}
|
||||
segment={ segment }
|
||||
tabs={ segment.tabs }
|
||||
/>
|
||||
</>
|
||||
:
|
||||
segment.type === "workSubSegment" ?
|
||||
<>
|
||||
<SegmentListWork
|
||||
key={`work_${index}`}
|
||||
segment={segment}
|
||||
tabs={segment.tabs}
|
||||
segment={ segment }
|
||||
tabs={ segment.tabs }
|
||||
/>
|
||||
</>
|
||||
:
|
||||
segment.type === "createBranchSegment" ?
|
||||
<>
|
||||
<SegmentCreateBranch
|
||||
key={`create_${index}`}
|
||||
segment={segment}
|
||||
tabs={segment.tabs}
|
||||
segment={ segment }
|
||||
tabs={ segment.tabs }
|
||||
/>
|
||||
</>
|
||||
:
|
||||
segment.type === "mergeBranchSegment" ?
|
||||
<>
|
||||
<SegmentMergeBranch
|
||||
key={`merge_${index}`}
|
||||
segment={segment}
|
||||
tabs={segment.tabs}
|
||||
segment={ segment }
|
||||
tabs={ segment.tabs }
|
||||
/>
|
||||
</>
|
||||
:
|
||||
segment.type === "RODOSegment" ?
|
||||
<>
|
||||
<SegmentRODO
|
||||
key={`rodo_${index}`}
|
||||
segment={segment}
|
||||
segment={ segment }
|
||||
/>
|
||||
</>
|
||||
:
|
||||
null
|
||||
<></>
|
||||
}
|
||||
</div>
|
||||
)
|
||||
|
|
@ -469,6 +401,7 @@ const Segment = ({ index, segment }) => {
|
|||
|
||||
|
||||
const IndexPage = () => {
|
||||
|
||||
let eng_ = "🇬🇧"
|
||||
let pol_ = "🇵🇱"
|
||||
|
||||
|
|
@ -493,18 +426,20 @@ const IndexPage = () => {
|
|||
Curriculum Vitae
|
||||
</div>
|
||||
<div className="language_bar">
|
||||
<div onClick={e => swap_content(e)}>
|
||||
{content_swapper}
|
||||
<div onClick={ e => swap_content(e) }>
|
||||
{ content_swapper }
|
||||
</div>
|
||||
</div>
|
||||
{
|
||||
content.map((value, index) => (
|
||||
content.map( (value, index) => {
|
||||
return (
|
||||
<Segment
|
||||
key={`segment_${index}`}
|
||||
index={index}
|
||||
segment={value}
|
||||
index={ index }
|
||||
segment={ value }
|
||||
/>
|
||||
))
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
</div>
|
||||
<div className="foot">
|
||||
|
|
|
|||
|
|
@ -207,70 +207,3 @@ body {
|
|||
width: 100%;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.captcha-container {
|
||||
float: right;
|
||||
|
||||
.captcha-form {
|
||||
background-color: $div_background_color;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
width: 210px;
|
||||
height: 250px;
|
||||
|
||||
p {
|
||||
text-align: center;
|
||||
margin-top: 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
form {
|
||||
width: 100%;
|
||||
margin-top: 15px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $color;
|
||||
cursor: pointer;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 5px;
|
||||
padding-left: 35px;
|
||||
padding-right: 35px;
|
||||
}
|
||||
|
||||
.captcha-input {
|
||||
width: 170px;
|
||||
padding: 8px;
|
||||
margin-bottom: 10px;
|
||||
border: 1px solid $color;
|
||||
background-color: $background_color;
|
||||
color: $color;
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
.captcha-button {
|
||||
width: 188px;
|
||||
padding: 8px;
|
||||
background-color: $background_color;
|
||||
color: $color;
|
||||
border: 1px solid $color;
|
||||
cursor: pointer;
|
||||
font-size: 9pt;
|
||||
|
||||
&:hover {
|
||||
background-color: darken($background_color, 5%);
|
||||
}
|
||||
}
|
||||
|
||||
.error-message {
|
||||
color: #ff4444;
|
||||
margin-top: 10px;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue