From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server-vie001.gnuweeb.org X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,URIBL_DBL_BLOCKED_OPENDNS, URIBL_ZEN_BLOCKED_OPENDNS autolearn=ham autolearn_force=no version=3.4.6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1741185646; bh=zZ9y2lz2ECPqmh5269yLuDP+xqYUZCtbBrGmqlaofGY=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version: Content-Transfer-Encoding:Message-ID:Date:From:Reply-To:Subject:To: Cc:In-Reply-To:References:Resent-Date:Resent-From:Resent-To: Resent-Cc:User-Agent:Content-Type:Content-Transfer-Encoding; b=GUwTlVRte8erRI+Dg3m1Q8QA5HPzKyfqwUgQ/zls14JumKHJ4xgryQHtLcM2vFV7W YGb/Sybr3usYXn3tUAkV/9Y0gMg4jXHzwOAnFwMoUMeglF500RKTU8vqbxcMd3y7WH e0jiMn/C/n3u5ac7+0OBMO87E0FpSn2aiNsw1kKi94v2whCjAK7xFAlyT3Hi7zHelp z90YvOyfRwSXDot+MJSGLQUq40ayELZo9+LW8RccMKpXCUCKJ4Ncuf8sTWLaSv6YRO n/EfkTRGY5fgyWM0uyLHxBkaXMQ67bx1Sfpj50E6Ys/Nw5hSkdINlk/3/XZ3iGdDXp 3a2eKQIqiQPjg== Received: from localhost.localdomain (unknown [203.217.140.198]) by server-vie001.gnuweeb.org (Postfix) with ESMTPSA id 797E620B4831; Wed, 5 Mar 2025 14:40:45 +0000 (UTC) From: Muhammad Rizki To: Ammar Faizi Cc: Muhammad Rizki , Alviro Iskandar Setiawan , GNU/Weeb Mailing List Subject: [PATCH v1 00/17] Profile Page, SEO, Fixed API structure, Docs Date: Wed, 5 Mar 2025 21:39:59 +0700 Message-ID: <20250305144018.267-1-kiizuha@gnuweeb.org> X-Mailer: git-send-email 2.46.0.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: Hello, This series of patches was planned only to update profile page feature, since there is a change in the API structure, I also fixed the API response type to prevent breaking change. To prevent more breaking change on production site in the future, sir Ammar has made a staging API for development stage, since there is a staging API version, I added an environment variable `PUBLIC_BASE_URL` for each environment (development or production). You should set `PUBLIC_BASE_URL` environment in your own server, there is an example file for development and production environment in this patch, please see `.env.development.example` and `.env.production.example` in root directory. I also added API documentation in Postman workspace that I created myself, you can find it in this link: https://gnuweeb.postman.co/workspace/GNU%252FWeeb~2805fbdd-376b-42de-8fe1-2a4cfa22ed3c/overview?ctx=updates Please give it a test and review, thank you. Muhammad Rizki (17): fix(typing): add user_info type prop refactor: optimize icon imports to reduce bundle size chore(change-pwd): adjust change password heading styling chore(settings/layout): use prose: for heading styling fix(profile): fix edit avatar button position fix(breadcrumb): Move settingsNav to settings items navigations chore(responsive): adjust styling chore(navigations): Replace index /settings url feat(ui): Add popover and dialog UI component feat(http): Use PUBLIC_BASE_URL for each environment feat(icons): Add social icons feat(typing/enum): add Gender and IsActive enum refactor!:feat: update API response structure, update profile page chore(meta): rename favicon.png to favicon.ico feat(seo): add SEO for site metadata chore(login): use $derived() instead of function based docs: update README.md .env.development.example | 2 + .env.production.example | 2 + .gitignore | 2 +- README.md | 7 + package-lock.json | 8 +- package.json | 2 +- src/app.html | 2 +- src/lib/components/customs/app-sidebar.svelte | 4 +- src/lib/components/customs/header.svelte | 39 +- src/lib/components/customs/seo.svelte | 27 + src/lib/components/icons/icon-discord.svelte | 35 ++ src/lib/components/icons/icon-github.svelte | 35 ++ src/lib/components/icons/icon-telegram.svelte | 35 ++ src/lib/components/icons/icon-twitter.svelte | 35 ++ .../components/ui/avatar/avatar-image.svelte | 2 +- src/lib/components/ui/avatar/avatar.svelte | 2 +- .../ui/dialog/dialog-content.svelte | 38 ++ .../ui/dialog/dialog-description.svelte | 16 + .../components/ui/dialog/dialog-footer.svelte | 20 + .../components/ui/dialog/dialog-header.svelte | 20 + .../ui/dialog/dialog-overlay.svelte | 19 + .../components/ui/dialog/dialog-title.svelte | 16 + src/lib/components/ui/dialog/index.ts | 37 ++ .../components/ui/input/input-password.svelte | 5 +- src/lib/components/ui/input/input.svelte | 2 +- src/lib/components/ui/popover/index.ts | 17 + .../ui/popover/popover-content.svelte | 28 + src/lib/constants/navigations.ts | 30 +- src/lib/hooks/auth.svelte.ts | 12 +- src/lib/hooks/http.svelte.ts | 3 +- src/lib/schemas/profile-schema.ts | 20 +- src/lib/typings/common.d.ts | 11 + src/lib/typings/credential.d.ts | 11 +- src/lib/typings/http.d.ts | 11 +- src/lib/typings/index.ts | 11 +- src/lib/utilities/index.ts | 3 +- src/lib/utilities/navigation.ts | 5 + src/routes/(protected)/+layout.svelte | 12 + src/routes/(protected)/+layout.ts | 9 +- .../(components)/settings-header.svelte | 3 +- .../(protected)/settings/+layout.svelte | 7 +- src/routes/(protected)/settings/+page.ts | 6 +- .../(protected)/settings/account/+page.svelte | 9 +- .../(protected)/settings/profile/+page.svelte | 580 +++++++++++++----- .../(protected)/settings/profile/+page.ts | 7 +- src/routes/+page.svelte | 36 +- static/{favicon.png => favicon.ico} | Bin 47 files changed, 1024 insertions(+), 219 deletions(-) create mode 100644 .env.development.example create mode 100644 .env.production.example create mode 100644 src/lib/components/customs/seo.svelte create mode 100644 src/lib/components/icons/icon-discord.svelte create mode 100644 src/lib/components/icons/icon-github.svelte create mode 100644 src/lib/components/icons/icon-telegram.svelte create mode 100644 src/lib/components/icons/icon-twitter.svelte create mode 100644 src/lib/components/ui/dialog/dialog-content.svelte create mode 100644 src/lib/components/ui/dialog/dialog-description.svelte create mode 100644 src/lib/components/ui/dialog/dialog-footer.svelte create mode 100644 src/lib/components/ui/dialog/dialog-header.svelte create mode 100644 src/lib/components/ui/dialog/dialog-overlay.svelte create mode 100644 src/lib/components/ui/dialog/dialog-title.svelte create mode 100644 src/lib/components/ui/dialog/index.ts create mode 100644 src/lib/components/ui/popover/index.ts create mode 100644 src/lib/components/ui/popover/popover-content.svelte create mode 100644 src/lib/utilities/navigation.ts rename static/{favicon.png => favicon.ico} (100%) base-commit: 3c3c00ff4e261aaeab8d91323b99eebf22adc4dd -- Muhammad Rizki