Frontend: complete task list (C1–L4), security, a11y, L1 block card helper
- React: response.ok checks (address, transaction, search); block number validation; stable Table keys; API modules (addresses, transactions, blocks normalizer) - SPA: escapeHtml/safe URLs/onclick; getRpcUrl in rpcCall; cancel blocks rAF on view change; named constants; hash route decode - SPA: createBlockCardHtml + normalizeBlockDisplay (L1); DEBUG console gating; aria-live for errors; token/block/tx detail escaping - Docs: FRONTEND_REVIEW.md, FRONTEND_TASKS_AND_REVIEW.md; favicons; .gitignore *.tsbuildinfo Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -11,6 +11,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
FRONTEND_SOURCE="${REPO_ROOT}/explorer-monorepo/frontend/public/index.html"
|
||||
[ -f "$FRONTEND_SOURCE" ] || FRONTEND_SOURCE="${SCRIPT_DIR}/../frontend/public/index.html"
|
||||
FRONTEND_PUBLIC="$(dirname "$FRONTEND_SOURCE")"
|
||||
PROXMOX_R630_02="${PROXMOX_HOST_R630_02:-192.168.11.12}"
|
||||
|
||||
echo "=========================================="
|
||||
@@ -77,7 +78,45 @@ else
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Step 5: Update nginx (skip when remote; full config via ensure-explorer-nginx-api-proxy.sh)
|
||||
# Step 4b: Deploy favicon and apple-touch-icon
|
||||
echo "=== Step 4b: Deploying icons ==="
|
||||
for ASSET in apple-touch-icon.png favicon.ico; do
|
||||
SRC="${FRONTEND_PUBLIC}/${ASSET}"
|
||||
if [ ! -f "$SRC" ]; then
|
||||
echo "⚠️ Skip $ASSET (not found)"
|
||||
continue
|
||||
fi
|
||||
if [ "$DEPLOY_METHOD" = "direct" ]; then
|
||||
cp "$SRC" "/var/www/html/$ASSET"
|
||||
chown www-data:www-data "/var/www/html/$ASSET" 2>/dev/null || true
|
||||
echo "✅ $ASSET deployed"
|
||||
elif [ "$DEPLOY_METHOD" = "remote" ]; then
|
||||
scp -o ConnectTimeout=10 -o StrictHostKeyChecking=no "$SRC" root@${PROXMOX_R630_02}:/tmp/"$ASSET"
|
||||
ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no root@${PROXMOX_R630_02} "pct push $VMID /tmp/$ASSET /var/www/html/$ASSET --perms 0644 && pct exec $VMID -- chown www-data:www-data /var/www/html/$ASSET"
|
||||
echo "✅ $ASSET deployed via $PROXMOX_R630_02"
|
||||
else
|
||||
pct push $VMID "$SRC" "/var/www/html/$ASSET"
|
||||
$EXEC_PREFIX chown www-data:www-data "/var/www/html/$ASSET" 2>/dev/null || true
|
||||
echo "✅ $ASSET deployed"
|
||||
fi
|
||||
done
|
||||
echo ""
|
||||
|
||||
# Step 5 (remote): Apply nginx config so /favicon.ico and /apple-touch-icon.png are served
|
||||
if [ "$DEPLOY_METHOD" = "remote" ]; then
|
||||
echo "=== Step 5 (remote): Applying nginx config for icons ==="
|
||||
FIX_NGINX_SCRIPT="${REPO_ROOT}/explorer-monorepo/scripts/fix-nginx-serve-custom-frontend.sh"
|
||||
if [ -f "$FIX_NGINX_SCRIPT" ]; then
|
||||
scp -o ConnectTimeout=10 -o StrictHostKeyChecking=no "$FIX_NGINX_SCRIPT" root@${PROXMOX_R630_02}:/tmp/fix-nginx-explorer.sh
|
||||
ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no root@${PROXMOX_R630_02} "pct push $VMID /tmp/fix-nginx-explorer.sh /tmp/fix-nginx-explorer.sh --perms 0755 && pct exec $VMID -- /tmp/fix-nginx-explorer.sh"
|
||||
echo "✅ Nginx config applied (favicon and apple-touch-icon locations)"
|
||||
else
|
||||
echo "⚠️ Nginx fix script not found ($FIX_NGINX_SCRIPT); icons may still 404 until nginx is updated on VM"
|
||||
fi
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Step 5 (local/pct): Update nginx configuration
|
||||
if [ "$DEPLOY_METHOD" != "remote" ]; then
|
||||
echo "=== Step 5: Updating nginx configuration ==="
|
||||
$EXEC_PREFIX bash << 'NGINX_UPDATE'
|
||||
@@ -158,8 +197,8 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Test HTTP endpoint
|
||||
HTTP_RESPONSE=$(run_in_vm "curl -s http://localhost/ 2>/dev/null | head -5")
|
||||
# Test HTTP endpoint (non-fatal: do not exit on failure)
|
||||
HTTP_RESPONSE=$(run_in_vm "curl -s --max-time 5 http://localhost/ 2>/dev/null | head -5" 2>/dev/null) || true
|
||||
if echo "$HTTP_RESPONSE" | grep -q "SolaceScanScout\|<!DOCTYPE html"; then
|
||||
echo "✅ Frontend is accessible via nginx"
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user