From 6db5b6da209a73401d6aa68c172641989cdb268b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antoni=20Nu=C3=B1ez=20Romeu?= Date: Mon, 29 Jun 2026 10:56:43 +0200 Subject: [PATCH] Visual hotfixes & CI/CD --- .claude/settings.local.json | 54 ------------------------------ bitrise.yml | 42 +++++++++++------------ frontend/src/App.css | 2 +- frontend/src/components/TopBar.css | 4 ++- frontend/src/views/HomeView.css | 7 ++-- 5 files changed, 27 insertions(+), 82 deletions(-) delete mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index 1a4a817..0000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "permissions": { - "allow": [ - "Bash(npm run:*)", - "Bash(npm install *)", - "Bash(npm test *)", - "Bash(npx vitest *)", - "Bash(./node_modules/.bin/vitest run *)", - "Bash(git -C /home/f80ans0/Projects/Webs/FarmaFinder remote -v)", - "Bash(grep -E \"^\\(express|sqlite3|bcrypt|axios|cors|redis|connect-sqlite3|express-session|express-rate-limit\\)$\")", - "Bash(grep -E \"^\\(react-leaflet|leaflet\\)$\")", - "Bash(grep -E \"^\\(connect-sqlite3|express-rate-limit\\)$\")", - "Bash(node --check server.js)", - "Bash(node --input-type=module -e ' *)", - "Bash(node *)", - "Bash(kill 1043357 1043372 1043383 1043384 1043416 1043417 1043457 1043463 1043479 1061932)", - "Bash(NODE_OPTIONS=--experimental-vm-modules npx jest)", - "Bash(npx vite *)", - "Bash(curl -sL -o /tmp/ref-nav.png \"https://theuistudio.com/blog/wp-content/uploads/2025/09/image-8.png\")", - "WebFetch(domain:dev.to)", - "Bash(command -v npx node java)", - "Bash(npx --version)", - "Bash(npx cap *)", - "Bash(pacman -Si jdk17-openjdk)", - "Bash(yay -Si android-sdk-cmdline-tools-latest)", - "Bash(sudo pacman -S --needed --noconfirm jdk17-openjdk)", - "Bash(sudo -n pacman -S --needed --noconfirm jdk17-openjdk)", - "Bash(java -version)", - "Read(//opt/android-sdk/**)", - "Read(//usr/lib/jvm/**)", - "Bash(getent group *)", - "Bash(cat)", - "Bash(grep -q '^android/local.properties$' /home/anunez/Projects/FarmaFinder/.gitignore)", - "Bash(JAVA_HOME=/usr/lib/jvm/java-17-openjdk ANDROID_HOME=/opt/android-sdk ANDROID_SDK_ROOT=/opt/android-sdk PATH=/usr/lib/jvm/java-17-openjdk/bin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:__TRACKED_VAR__ ./gradlew --no-daemon assembleDebug)", - "Bash(shred -u /tmp/.farmafinder-keystore-pass)", - "Read(//tmp/**)", - "Bash(JAVA_HOME=/usr/lib/jvm/java-17-openjdk /usr/lib/jvm/java-17-openjdk/bin/jarsigner -verify -verbose:summary /home/anunez/Projects/FarmaFinder/android/app/build/outputs/bundle/release/app-release.aab)", - "Bash(openssl pkcs7 *)", - "Bash(openssl x509 *)", - "Bash(/opt/android-sdk/build-tools/34.0.0/apksigner verify *)", - "Bash(npm ci *)", - "Bash(xxd)", - "WebFetch(domain:raw.githubusercontent.com)", - "Bash(git add *)", - "Bash(git commit *)", - "Bash(git push *)", - "WebFetch(domain:github.com)", - "WebSearch", - "WebFetch(domain:developers.google.com)", - "WebFetch(domain:cocoapods.org)", - "Bash(git check-ignore *)" - ] - } -} diff --git a/bitrise.yml b/bitrise.yml index ee7c429..b802fe2 100644 --- a/bitrise.yml +++ b/bitrise.yml @@ -20,13 +20,12 @@ trigger_map: workflow: deploy_android workflows: - # ── Shared setup ────────────────────────────────────────── _setup: steps: - - activate-ssh-key@4: + - activate-ssh-key@5: run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}' - - git-clone@8: {} - - nvm@1: + - git-clone@9: {} + - setup-node@1: inputs: - node_version: "20" - script@1: @@ -35,11 +34,10 @@ workflows: - content: | #!/bin/bash set -ex - npm install - npm install --prefix frontend + npm ci + npm ci --prefix frontend npm run build --prefix frontend - # ── Android test / PR build ────────────────────────────── test: before_run: - _setup @@ -61,14 +59,13 @@ workflows: "platforms;android-36" \ "build-tools;36.0.0" \ "platform-tools" || true - - android-build@1: + - android-build@2: title: Build Android APK (debug) inputs: - project_location: android - module: app - variant: debug - # ── iOS test / PR build (simulator) ────────────────────── test_ios: before_run: - _setup @@ -83,7 +80,7 @@ workflows: - cocoapods-install@2: inputs: - podfile_path: ios/App/Podfile - - xcode-archive@4: + - xcode-archive@5: title: Build iOS (simulator) inputs: - project_path: ios/App/App.xcodeproj @@ -93,7 +90,6 @@ workflows: - output_tool: xcodebuild - cache_level: swift - # ── iOS deploy ─────────────────────────────────────────── deploy_ios: before_run: - _setup @@ -109,7 +105,7 @@ workflows: inputs: - podfile_path: ios/App/Podfile - certificate-and-profile-installer@1: {} - - xcode-archive@4: + - xcode-archive@5: title: Archive iOS (release) inputs: - project_path: ios/App/App.xcodeproj @@ -119,9 +115,8 @@ workflows: - output_tool: xcodebuild - export_method: app-store - cache_level: swift - - deploy-to-bitrise-io@2: {} + - deploy-to-bitrise-io@4: {} - # ── Android deploy ─────────────────────────────────────── deploy_android: before_run: - _setup @@ -143,20 +138,21 @@ workflows: "platforms;android-36" \ "build-tools;36.0.0" \ "platform-tools" || true - - android-build@1: + - android-build@2: title: Build Android AAB (release) inputs: - project_location: android - module: app - variant: release - - deploy-to-bitrise-io@2: {} + - sign-apk@1: + inputs: + - use_apk_signer: "true" + - deploy-to-bitrise-io@4: {} - # ── Combined deploy (default branch push) ──────────────── deploy: before_run: - _setup steps: - # Android - script@1: title: Sync Android native project inputs: @@ -174,13 +170,15 @@ workflows: "platforms;android-36" \ "build-tools;36.0.0" \ "platform-tools" || true - - android-build@1: + - android-build@2: title: Build Android AAB (release) inputs: - project_location: android - module: app - variant: release - # iOS + - sign-apk@1: + inputs: + - use_apk_signer: "true" - script@1: title: Sync iOS native project inputs: @@ -192,7 +190,7 @@ workflows: inputs: - podfile_path: ios/App/Podfile - certificate-and-profile-installer@1: {} - - xcode-archive@4: + - xcode-archive@5: title: Archive iOS (release) inputs: - project_path: ios/App/App.xcodeproj @@ -202,4 +200,4 @@ workflows: - output_tool: xcodebuild - export_method: app-store - cache_level: swift - - deploy-to-bitrise-io@2: {} \ No newline at end of file + - deploy-to-bitrise-io@4: {} \ No newline at end of file diff --git a/frontend/src/App.css b/frontend/src/App.css index a5a8d5f..2dfacb9 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -290,7 +290,7 @@ @media (max-width: 768px) { .app { - padding: 1rem 1rem calc(7rem + env(safe-area-inset-bottom)); + padding: calc(3.55rem + env(safe-area-inset-top)) 1rem calc(7rem + env(safe-area-inset-bottom)); } .app-header h1 { diff --git a/frontend/src/components/TopBar.css b/frontend/src/components/TopBar.css index 71353df..99fc7ef 100644 --- a/frontend/src/components/TopBar.css +++ b/frontend/src/components/TopBar.css @@ -9,8 +9,10 @@ display: flex; align-items: center; justify-content: space-between; - position: sticky; + position: fixed; top: 0; + left: 0; + right: 0; z-index: 50; padding: calc(0.65rem + env(safe-area-inset-top)) 1rem 0.65rem; background: var(--glass-bg); diff --git a/frontend/src/views/HomeView.css b/frontend/src/views/HomeView.css index c7a8486..03eac54 100644 --- a/frontend/src/views/HomeView.css +++ b/frontend/src/views/HomeView.css @@ -3,12 +3,11 @@ ============================================================ */ .home-container { - min-height: 100dvh; display: flex; flex-direction: column; justify-content: center; align-items: center; - padding: 2rem 1.5rem calc(5rem + env(safe-area-inset-bottom)); + padding: 2rem 1.5rem; gap: 2.5rem; animation: fadeInUp 0.7s ease-out; } @@ -266,10 +265,10 @@ /* ── Responsive ─────────────────────────────────────────── */ @media (max-width: 640px) { .home-container { - padding: 1.5rem 1rem calc(6rem + env(safe-area-inset-bottom)); + padding: 1.5rem 1rem; gap: 1.75rem; justify-content: flex-start; - padding-top: 2.5rem; + padding-top: 0.5rem; } .home-grid {