initial: bootstrap from BukidBountyApp base
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# TODO: Fix URL-based Page Navigation (useNavigate URL Format Issue)
|
||||
|
||||
## Problem Summary
|
||||
Pages return "page not found" when accessed via URL. The issue is a mismatch between how `useNavigate.js` generates URLs and how `VueRouteMap.php` parses them back to component names.
|
||||
|
||||
### Root Cause
|
||||
- **Frontend** (`useNavigate.js`): Converts `CooperativeList` → `/cooperativelist` (no separators)
|
||||
- **Backend** (`VueRouteMap.php`): Expects hyphenated format like `/cooperative-list` to properly convert back to `CooperativeList`
|
||||
- **Result**: Component name mismatch → page not found
|
||||
|
||||
---
|
||||
|
||||
## Fix Steps
|
||||
|
||||
### Step 1: Fix Frontend URL Generation
|
||||
**File**: `resources/js/composables/Core/useNavigate.js`
|
||||
|
||||
- [ ] Modify the URL generation logic to convert camelCase/PascalCase page names to kebab-case
|
||||
- [ ] Change: `page.replace(/\./g, '/').toLowerCase()`
|
||||
- [ ] To: Convert `CooperativeList` → `cooperative-list` (hyphenated kebab-case)
|
||||
- [ ] Ensure all page navigations generate proper kebab-case URLs
|
||||
|
||||
### Step 2: Verify Backend Route Parsing
|
||||
**File**: `app/Http/Controllers/Support/VueRouteMap.php`
|
||||
|
||||
- [ ] Verify `toCamelCase()` method properly converts kebab-case back to PascalCase
|
||||
- [ ] Confirm: `cooperative-list` → `CooperativeList`
|
||||
- [ ] Test with multi-word component names
|
||||
|
||||
### Step 3: Test URL Patterns
|
||||
- [ ] Test direct URL access: `/cooperative-list` → loads `CooperativeList` component
|
||||
- [ ] Test direct URL access: `/buy-view-product-market` → loads `BuyViewProductMarket` component
|
||||
- [ ] Test URLs with hash parameters: `/edit-user--hHASHKEY`
|
||||
- [ ] Test URLs with payload parameters: `/some-page--e:ENCODED_PAYLOAD`
|
||||
|
||||
### Step 4: Verify Browser Back/Forward Navigation
|
||||
- [ ] Test popstate event handling with new URL format
|
||||
- [ ] Ensure browser history works correctly with kebab-case URLs
|
||||
|
||||
### Step 5: Check Existing Routes
|
||||
- [ ] Verify all routes in `VueRouteMap::$routes` array work with new URL format
|
||||
- [ ] Ensure no broken links or navigation issues
|
||||
|
||||
---
|
||||
|
||||
## Expected Outcome
|
||||
- All pages accessible via direct URL
|
||||
- Browser refresh maintains current page
|
||||
- Browser back/forward navigation works correctly
|
||||
- URLs are clean and SEO-friendly (kebab-case)
|
||||
|
||||
## Files to Modify
|
||||
1. `resources/js/composables/Core/useNavigate.js` - Fix URL generation
|
||||
2. Potentially `resources/js/composables/useUrlEncoder.js` - If hash/payload encoding needs adjustment
|
||||
|
||||
## Testing Checklist
|
||||
- [ ] Navigate to a page, copy URL, open in new tab → page loads correctly
|
||||
- [ ] Refresh page while on a route → page stays on same route
|
||||
- [ ] Browser back button works correctly
|
||||
- [ ] URLs with hashkey parameters work
|
||||
- [ ] URLs with payload parameters work
|
||||
Reference in New Issue
Block a user