Skip to content

Feat/url parser 51#60

Merged
SyedFahad7 merged 3 commits intobetterbugs:developfrom
udaykiran243:feat/url-parser-51
Mar 8, 2026
Merged

Feat/url parser 51#60
SyedFahad7 merged 3 commits intobetterbugs:developfrom
udaykiran243:feat/url-parser-51

Conversation

@udaykiran243
Copy link
Contributor

Feature: URL Parser & Query Editor

Resolves #51

Description

This PR introduces a new development tool, the URL Parser & Query String Editor, designed to simplify the process of debugging and constructing complex URLs.

It provides a visual interface to:

  • Decompose URLs into their core components (Scheme, Host, Path, Hash).
  • View and edit query parameters in a dynamic table.
  • Add, delete, and modify key-value pairs with real-time URL updates.

Implementation Details

  • New Component: app/components/developmentToolsComponent/urlParser.tsx - Implements the parsing logic using the native URL API and manages state for two-way binding between the raw URL string and the visual editor.
  • Route Registration: Added /url-parser route in app/libs/constants.tsx.
  • Content & Metadata: Updated app/libs/developmentToolsConstant.tsx with tool descriptions, SEO metadata, and usage guides.

✅ Checklist

  • Implemented URL parsing logic
  • Created visual query parameter editor
  • Added responsive UI matching existing tools
  • Tested with various URL formats

Preview

Screen.Recording.2026-03-02.154941.mp4

Copilot AI review requested due to automatic review settings March 2, 2026 10:20
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Development Tool page for parsing URLs and editing query parameters, wiring it into the existing tool routing + metadata system. The PR also introduces a Unix Timestamp Converter tool (routes + metadata) and updates dependencies/lockfile accordingly.

Changes:

  • Added UrlParser UI for URL component breakdown + query parameter editing.
  • Registered /url-parser route and added tool metadata/SEO content for the new page.
  • Introduced a Unix Timestamp Converter route/component and added dayjs (plus substantial lockfile updates).

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
package.json Adds dayjs; dependency list change also results in lockfile churn.
package-lock.json Large lockfile update including dayjs/curlconverter entries and many peer flag changes.
app/libs/developmentToolsConstant.tsx Adds metadata/SEO content for url-parser and unix-timestamp-converter.
app/libs/constants.tsx Registers new PATHS + routes for URL Parser and Unix Timestamp Converter; adds URL Parser to category listing.
app/components/developmentToolsComponent/urlParser.tsx New URL Parser & Query Editor component implementation.
app/components/developmentToolsComponent/epochConverter.tsx New Unix Timestamp Converter component using dayjs + Ant Design.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +17366 to +17371
'Debugging long URLs with multiple query parameters can be tedious and prone to errors. This tool simplifies the process by breaking down the URL into readable parts: Scheme, Host, Path, Port, and Hash.',
},
{
description:
'It features a dynamic table for editing query parameters, where you can add, modify, delete, and toggle encoding for individual parameters, seeing the URL update in real-time.',
},
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tool description claims you can “toggle encoding for individual parameters”, but the URL Parser component doesn’t implement any encoded/decoded toggle (and QueryParam.active is never exposed in the UI). Either implement the encoding toggle control or adjust this copy so the UI and SEO text match actual behavior.

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +10
import React, { useState, useEffect } from "react";
import { Button, Input, DatePicker, message, Tooltip, Card, Typography, Space, Row, Col, ConfigProvider, theme } from "antd";
import dayjs, { Dayjs } from "dayjs";
import relativeTime from "dayjs/plugin/relativeTime";
import utc from "dayjs/plugin/utc";
import timezone from "dayjs/plugin/timezone";
import DevelopmentToolsStyles from "../../developmentToolsStyles.module.scss";
import { CopyOutlined, ReloadOutlined, DeleteOutlined } from "@ant-design/icons";

Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This component has several unused imports/values (e.g., useEffect, Tooltip, Card, Title, message, CopyOutlined, and the copyToClipboard helper). With next lint enabled, unused imports are likely to produce lint errors/warnings and they also bloat the client bundle. Remove unused imports and dead code, or wire them into the UI if they’re intended.

Copilot uses AI. Check for mistakes.
Comment on lines 186 to +189
import XorCalculator from '../components/developmentToolsComponent/xorCalculator';
import CurlToCodeConverter from '../components/developmentToolsComponent/curlToCodeConverter';
import YAMLFormatterAndBeautifier from '../components/developmentToolsComponent/yamlFormatterAndBeautifier';
import EpochConverter from '../components/developmentToolsComponent/epochConverter';
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR description/issue scope is for the URL Parser tool, but this diff also introduces a new Unix Timestamp Converter route/component (EpochConverter, new PATH, and new route). If this is intentional, the PR description should be updated and the change ideally split into a separate PR to keep review + release scope clear.

Copilot uses AI. Check for mistakes.
"antd": "5.16.2",
"curlconverter": "^4.12.0",
"bcryptjs": "^2.4.3",
"curlconverter": "^4.12.0",
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

curlconverter is listed as a production dependency and the lockfile pulls in tree-sitter/native install scripts, but there are no references to curlconverter anywhere in the repo code (no imports/requires). If it’s not actually used, consider removing it to reduce install size and avoid native build failures in CI/hosting environments.

Suggested change
"curlconverter": "^4.12.0",

Copilot uses AI. Check for mistakes.
Comment on lines 1788 to 1792
CRONTAB_GENERATOR: '/crontab-generator',
MORSE_CODE_TRANSLATOR: '/morse-code-translator',
UNIX_TIMESTAMP_CONVERTER: '/unix-timestamp-converter',
CURL_TO_CODE_CONVERTER: '/curl-to-code-converter',
};
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PATHS.UNIX_TIMESTAMP_CONVERTER and its route are registered, but the tool isn’t added anywhere in developmentToolsCategoryContent (which is used to build the homepage/search list). If this tool is meant to be discoverable like the others, add it to the category content; otherwise the route will exist but won’t appear in the tools list/API.

Copilot uses AI. Check for mistakes.
Comment on lines +20 to +31
const updateStateFromUrl = (url: URL) => {
setParsedUrl(url);
const params: QueryParam[] = [];
url.searchParams.forEach((value, key) => {
// We use random id for keys to allow duplicate keys in React list if necessary,
// though URLSearchParams handles them.
params.push({
id: Math.random().toString(36).substr(2, 9),
key,
value,
active: true
});
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updateStateFromUrl assigns a new random id to every query param on each parse. Because urlInput is updated from the table editor (which triggers the parsing useEffect), this will regenerate row keys while the user is typing in the table and can cause input focus/caret to jump and edits to apply to the wrong row. Use stable IDs (e.g., preserve existing IDs by index, or keep queryParams as the source of truth and only parse on direct textarea edits).

Copilot uses AI. Check for mistakes.
Comment on lines +81 to +93
newUrl.search = newSearchParams.toString();

// We update the input to reflect the changes.
// Note: This triggers the useEffect above, which re-parses.
// This circular dependency is usually handled by React batching or check for equality,
// but to be safe and avoid cursor jumping or loops, we might need a flag or careful management.
// However, for this simple tool, updating the main input is the "source of truth".

// To avoid re-rendering loop issues or cursor jumps if we were typing in the main input,
// we only update if the string is different.
if (newUrl.toString() !== urlInput) {
setUrlInput(newUrl.toString());
}
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updateUrlFromParams writes back into urlInput, which triggers the [urlInput] parsing effect and rebuilds queryParams. This creates an unnecessary re-parse loop and contributes to UI jitter (cursor jumps) when editing params/components. Consider splitting state so that textarea edits trigger parsing, while table/component edits update parsedUrl/queryParams directly without re-parsing (or gate the effect with a ref flag).

Copilot uses AI. Check for mistakes.
Copy link
Collaborator

@SyedFahad7 SyedFahad7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sync your PR branch with the latest develop before re-review.

Use rebase (preferred) instead of merging develop into your feature branch to keep history clean:

git fetch upstream
git rebase upstream/develop
Resolve conflicts, then run local checks (npm run lint and npm run build)
git push --force-with-lease origin
Notes:

No need to fix unrelated pre-existing warnings across the repo.
Do fix any errors introduced by your PR (especially in touched files).
Rebase rewrites only your PR branch history; it does not rewrite our develop branch.
Once updated, we’ll re-review quickly.

@udaykiran243
Copy link
Contributor Author

hey @SyedFahad7 made the changes, please review.

@SyedFahad7 SyedFahad7 self-requested a review March 5, 2026 22:10
Copy link
Collaborator

@SyedFahad7 SyedFahad7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work on this feature, the UI and parsing flow are solid overall. A few things to address before we merge:

  1. updateStateFromUrl regenerates a random id on every parse this causes row key instability and input cursor/focus jumps while editing.

  2. updateUrlFromParams writes to urlInput, which retriggers the [urlInput] effect , this causes unnecessary re-parsing/jitter. Please gate this flow or split textarea parsing from table edits.

  3. PATHS.UNIX_TIMESTAMP_CONVERTER is routed, but the tool is missing from developmentToolsCategoryContent , so it may not appear in homepage/search listings.

  4. Copy says users can "toggle encoding" but no encoding toggle exists in the UI (QueryParam.active is not exposed). Please either implement it or update the copy to match the actual behavior.

  5. Duplicate key in constants.tsx the Category177 appears twice in the object. In JavaScript/TypeScript, duplicate keys are invalid and one would silently overwrite the other at runtime. Please rename your entry to Category178, :

Category177: [
  { url: '/existing-tool', title: 'Existing Tool', ... },
  { url: '/url-parser', title: 'URL Parser & Query String Editor', ... },
],

Minor fix: Consider automatically URL-encoding values like spaces so the generated URL stays standards-compliant.

once these are fixed, this should be in good shape to merge!

@udaykiran243
Copy link
Contributor Author

hey @SyedFahad7 made the changes.

@SyedFahad7 SyedFahad7 self-requested a review March 6, 2026 18:59
@SyedFahad7
Copy link
Collaborator

Great work @udaykiran243, this is merge-ready from my side! ✅

One optional hardening suggestion (not blocking):

In updateStateFromUrl, IDs are still generated with Math.random() on each parse. Even with the isInternalUpdate guard already in place (which fixes the major jitter loop), external re-parses can still regenerate row keys and cause occasional focus/caret jumps in edge cases.

Consider switching to stable IDs instead, for example by preserving identity via index/key match or using a deterministic key+value+index hash. This would make row identity consistent across parses and fully de-risk the editor UX.

Again, not a blocker.. just a nice-to-have for long-term robustness!

@udaykiran243
Copy link
Contributor Author

hey @SyedFahad7 made the request suggestion, requesting for a review.

Copy link
Collaborator

@SyedFahad7 SyedFahad7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me now.

The stable ID follow up is implemented correctly in urlParser.tsx using param.${index}.${key} inside updateStateFromUrl. This addresses the earlier non blocking concern about random IDs causing unnecessary remount and re render behavior.

I also re ran local checks on this branch. Both npm run lint and npm run build pass successfully.

Approved for merge.

@SyedFahad7 SyedFahad7 self-requested a review March 7, 2026 21:04
Copy link
Collaborator

@SyedFahad7 SyedFahad7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the update @udaykiran243 - The URL Parser + Query Editor work is in good shape.

What looks good

  • URL Parser & Query Editor feature is implemented end-to-end and wired correctly.
  • Prior URL parser issues appear addressed:
    • constants duplication fixed
    • encoding toggle behavior improved
    • parsing flow is more stable
  • Stable query param IDs are now deterministic in updateStateFromUrl (param-${index}-${key}), which helps prevent unnecessary remounts/focus loss in the query table.
  • Unix Timestamp Converter is also correctly added and routed.

Requested changes (Unix converter)

  1. epochConverter.tsx currently validates with Number(val) (app/components/developmentToolsComponent/epochConverter.tsx:35), which accepts non-standard timestamp formats like " ", "1e3", and "0x10".
    Please enforce plain integer input for Unix timestamps (e.g. ^-?\d+$) before conversion.

  2. On invalid input, date is not cleared (app/components/developmentToolsComponent/epochConverter.tsx:36-43 path), so the DatePicker can show stale previous state while output says Invalid Timestamp (app/components/developmentToolsComponent/epochConverter.tsx:197).
    Please clear/reset date when input is invalid to keep UI state consistent.

Non-blocking cleanup

  • Remove unused imports/functions in epochConverter.tsx (useEffect, Tooltip, Card, Title, CopyOutlined, copyToClipboard) to reduce noise.

Also:
Sync your branch with the latest develop using rebase instead of merge. we merged a pr a while go.

Example workflow:
git fetch upstream
git rebase upstream/develop
resolve conflicts if any
git push --force-with-lease origin

Overall: URL Parser is good to merge, but I recommend fixing the two Unix timestamp logic issues above before final approval.

@udaykiran243
Copy link
Contributor Author

Thanks for the update @udaykiran243 - The URL Parser + Query Editor work is in good shape.

What looks good

  • URL Parser & Query Editor feature is implemented end-to-end and wired correctly.

  • Prior URL parser issues appear addressed:

    • constants duplication fixed
    • encoding toggle behavior improved
    • parsing flow is more stable
  • Stable query param IDs are now deterministic in updateStateFromUrl (param-${index}-${key}), which helps prevent unnecessary remounts/focus loss in the query table.

  • Unix Timestamp Converter is also correctly added and routed.

Requested changes (Unix converter)

  1. epochConverter.tsx currently validates with Number(val) (app/components/developmentToolsComponent/epochConverter.tsx:35), which accepts non-standard timestamp formats like " ", "1e3", and "0x10".
    Please enforce plain integer input for Unix timestamps (e.g. ^-?\d+$) before conversion.
  2. On invalid input, date is not cleared (app/components/developmentToolsComponent/epochConverter.tsx:36-43 path), so the DatePicker can show stale previous state while output says Invalid Timestamp (app/components/developmentToolsComponent/epochConverter.tsx:197).
    Please clear/reset date when input is invalid to keep UI state consistent.

Non-blocking cleanup

  • Remove unused imports/functions in epochConverter.tsx (useEffect, Tooltip, Card, Title, CopyOutlined, copyToClipboard) to reduce noise.

Also: Sync your branch with the latest develop using rebase instead of merge. we merged a pr a while go.

Example workflow: git fetch upstream git rebase upstream/develop resolve conflicts if any git push --force-with-lease origin

Overall: URL Parser is good to merge, but I recommend fixing the two Unix timestamp logic issues above before final approval.

Sorry for the inconvenience, the unix commit should be removed here, I’ll remove that commit. And this can be approved.

@SyedFahad7
Copy link
Collaborator

No issues, you do not need to remove the Unix timestamp commit. I had mentioned that earlier because there was another PR for it, but I have already closed it.

You can keep the Unix Timestamp Converter in this PR with the URL Parser and Query Editor and we will close both issues together. Just make sure the fixes mentioned in the review are addressed.

@udaykiran243
Copy link
Contributor Author

No issues, you do not need to remove the Unix timestamp commit. I had mentioned that earlier because there was another PR for it, but I have already closed it.

You can keep the Unix Timestamp Converter in this PR with the URL Parser and Query Editor and we will close both issues together. Just make sure the fixes mentioned in the review are addressed.

sorry, but as they are different issues, if I close them in one PR I will loose points in Apertre, I was thinking about that 😅

@udaykiran243
Copy link
Contributor Author

It’s okay, I’ll close here, and I request you to add a hard label and remove the medium.

@SyedFahad7
Copy link
Collaborator

No issues, you do not need to remove the Unix timestamp commit. I had mentioned that earlier because there was another PR for it, but I have already closed it.

You can keep the Unix Timestamp Converter in this PR with the URL Parser and Query Editor and we will close both issues together. Just make sure the fixes mentioned in the review are addressed.

sorry, but as they are different issues, if I close them in one PR I will loose points in Apertre, I was thinking about that 😅

No worries, we can close two issues in one PR. You will still get the points in Apetre for both issues.

@udaykiran243
Copy link
Contributor Author

No issues, you do not need to remove the Unix timestamp commit. I had mentioned that earlier because there was another PR for it, but I have already closed it.

You can keep the Unix Timestamp Converter in this PR with the URL Parser and Query Editor and we will close both issues together. Just make sure the fixes mentioned in the review are addressed.

sorry, but as they are different issues, if I close them in one PR I will loose points in Apertre, I was thinking about that 😅

No worries, we can close two issues in one PR. You will still get the points in Apetre for both issues.

But how?

@SyedFahad7
Copy link
Collaborator

It’s okay, I’ll close here, and I request you to add a hard label and remove the medium.

Both features, Unix Timestamp Converter and URL Parser with Query Editor, are medium complexity. That is why the PR is labeled as medium.

@SyedFahad7
Copy link
Collaborator

No issues, you do not need to remove the Unix timestamp commit. I had mentioned that earlier because there was another PR for it, but I have already closed it.

You can keep the Unix Timestamp Converter in this PR with the URL Parser and Query Editor and we will close both issues together. Just make sure the fixes mentioned in the review are addressed.

sorry, but as they are different issues, if I close them in one PR I will loose points in Apertre, I was thinking about that 😅

No worries, we can close two issues in one PR. You will still get the points in Apetre for both issues.

But how?

You can reference both issues in the PR description. For example:

Closes #51
Closes #16

When the PR is merged, GitHub will automatically close both issues, so you still get credit for both.

@udaykiran243
Copy link
Contributor Author

It’s okay, I’ll close here, and I request you to add a hard label and remove the medium.

Both features, Unix Timestamp Converter and URL Parser with Query Editor, are medium complexity. That is why the PR is labeled as medium.

Yes, I agree with that, but if I close both of them in one PR I only get 7 points, instead of 14 points.

@SyedFahad7
Copy link
Collaborator

It is not based on the number of PRs. If you reference both issues in the PR description, for example “Closes #51” and “Closes #16”, GitHub will close both when the PR is merged. In the issues list, both will show you as the one who resolved and closed them, so you still get credit for both.

@udaykiran243
Copy link
Contributor Author

No issues, you do not need to remove the Unix timestamp commit. I had mentioned that earlier because there was another PR for it, but I have already closed it.

You can keep the Unix Timestamp Converter in this PR with the URL Parser and Query Editor and we will close both issues together. Just make sure the fixes mentioned in the review are addressed.

sorry, but as they are different issues, if I close them in one PR I will loose points in Apertre, I was thinking about that 😅

No worries, we can close two issues in one PR. You will still get the points in Apetre for both issues.

But how?

You can reference both issues in the PR description. For example:

Closes #51 Closes #16

When the PR is merged, GitHub will automatically close both issues, so you still get credit for both.

No, in apertre only the PR counts not the closed issues

@udaykiran243
Copy link
Contributor Author

It’s about how many merge PR, that I had made

@udaykiran243
Copy link
Contributor Author

So, I’ll close both of them here and want you to label as hard. So this can be helpful getting 10points instead of 14.

@SyedFahad7
Copy link
Collaborator

So, I’ll close both of them here and want you to label as hard. So this can be helpful getting 10points instead of 14.

You can drop the unix timestamp commit from this pr. I've reopened the original unix convertor pr so you push changes for the issues i mentioned in that pr #16. Let this PR only contain the work for URl Parser & Query Editor.

Both the tools fall under medium complexity. That is why the PR is labeled as medium. Hard is usually reserved for more complex implementations.

@udaykiran243
Copy link
Contributor Author

So, I’ll close both of them here and want you to label as hard. So this can be helpful getting 10points instead of 14.

You can drop the unix timestamp commit from this pr. I've reopened the original unix convertor pr so you push changes for the issues i mentioned in that pr #16. Let this PR only contain the work for URl Parser & Query Editor.

Both the tools fall under medium complexity. That is why the PR is labeled as medium. Hard is usually reserved for more complex implementations.

okay sure 👍, thanks.

@udaykiran243
Copy link
Contributor Author

Sorry if I made any trouble.

@udaykiran243
Copy link
Contributor Author

hey @SyedFahad7 please review, I have removed the #28 commits

@udaykiran243
Copy link
Contributor Author

Thanks for the update @udaykiran243 - The URL Parser + Query Editor work is in good shape.

What looks good

  • URL Parser & Query Editor feature is implemented end-to-end and wired correctly.

  • Prior URL parser issues appear addressed:

    • constants duplication fixed
    • encoding toggle behavior improved
    • parsing flow is more stable
  • Stable query param IDs are now deterministic in updateStateFromUrl (param-${index}-${key}), which helps prevent unnecessary remounts/focus loss in the query table.

  • Unix Timestamp Converter is also correctly added and routed.

Requested changes (Unix converter)

  1. epochConverter.tsx currently validates with Number(val) (app/components/developmentToolsComponent/epochConverter.tsx:35), which accepts non-standard timestamp formats like " ", "1e3", and "0x10".
    Please enforce plain integer input for Unix timestamps (e.g. ^-?\d+$) before conversion.
  2. On invalid input, date is not cleared (app/components/developmentToolsComponent/epochConverter.tsx:36-43 path), so the DatePicker can show stale previous state while output says Invalid Timestamp (app/components/developmentToolsComponent/epochConverter.tsx:197).
    Please clear/reset date when input is invalid to keep UI state consistent.

Non-blocking cleanup

  • Remove unused imports/functions in epochConverter.tsx (useEffect, Tooltip, Card, Title, CopyOutlined, copyToClipboard) to reduce noise.

Also: Sync your branch with the latest develop using rebase instead of merge. we merged a pr a while go.

Example workflow: git fetch upstream git rebase upstream/develop resolve conflicts if any git push --force-with-lease origin

Overall: URL Parser is good to merge, but I recommend fixing the two Unix timestamp logic issues above before final approval.

@SyedFahad7 these are the changes I need to do in #28 right ?

@SyedFahad7
Copy link
Collaborator

Thanks for the update @udaykiran243 - The URL Parser + Query Editor work is in good shape.

What looks good

  • URL Parser & Query Editor feature is implemented end-to-end and wired correctly.

  • Prior URL parser issues appear addressed:

    • constants duplication fixed
    • encoding toggle behavior improved
    • parsing flow is more stable
  • Stable query param IDs are now deterministic in updateStateFromUrl (param-${index}-${key}), which helps prevent unnecessary remounts/focus loss in the query table.

  • Unix Timestamp Converter is also correctly added and routed.

Requested changes (Unix converter)

  1. epochConverter.tsx currently validates with Number(val) (app/components/developmentToolsComponent/epochConverter.tsx:35), which accepts non-standard timestamp formats like " ", "1e3", and "0x10".
    Please enforce plain integer input for Unix timestamps (e.g. ^-?\d+$) before conversion.
  2. On invalid input, date is not cleared (app/components/developmentToolsComponent/epochConverter.tsx:36-43 path), so the DatePicker can show stale previous state while output says Invalid Timestamp (app/components/developmentToolsComponent/epochConverter.tsx:197).
    Please clear/reset date when input is invalid to keep UI state consistent.

Non-blocking cleanup

  • Remove unused imports/functions in epochConverter.tsx (useEffect, Tooltip, Card, Title, CopyOutlined, copyToClipboard) to reduce noise.

Also: Sync your branch with the latest develop using rebase instead of merge. we merged a pr a while go.
Example workflow: git fetch upstream git rebase upstream/develop resolve conflicts if any git push --force-with-lease origin
Overall: URL Parser is good to merge, but I recommend fixing the two Unix timestamp logic issues above before final approval.

@SyedFahad7 these are the changes I need to do in #28 right ?

yea as you said you wanna maintain 2 PR's

@SyedFahad7 SyedFahad7 self-requested a review March 8, 2026 12:27
Copy link
Collaborator

@SyedFahad7 SyedFahad7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The scope now looks clean and URL-parser-only.

I found one blocking issue to fix before approval:

  • app/libs/developmentToolsConstant.tsx still contains a leftover merge-conflict marker:
    >>>>>>> 74235fe (feat(tools): add visual URL Parser and Query Editor #51)

Please remove that marker and ensure the file ends with valid object syntax only.
Once that is cleaned, I can re-check and approve.

@udaykiran243
Copy link
Contributor Author

Thanks for the update @udaykiran243 - The URL Parser + Query Editor work is in good shape.

What looks good

  • URL Parser & Query Editor feature is implemented end-to-end and wired correctly.

  • Prior URL parser issues appear addressed:

    • constants duplication fixed
    • encoding toggle behavior improved
    • parsing flow is more stable
  • Stable query param IDs are now deterministic in updateStateFromUrl (param-${index}-${key}), which helps prevent unnecessary remounts/focus loss in the query table.

  • Unix Timestamp Converter is also correctly added and routed.

Requested changes (Unix converter)

  1. epochConverter.tsx currently validates with Number(val) (app/components/developmentToolsComponent/epochConverter.tsx:35), which accepts non-standard timestamp formats like " ", "1e3", and "0x10".
    Please enforce plain integer input for Unix timestamps (e.g. ^-?\d+$) before conversion.
  2. On invalid input, date is not cleared (app/components/developmentToolsComponent/epochConverter.tsx:36-43 path), so the DatePicker can show stale previous state while output says Invalid Timestamp (app/components/developmentToolsComponent/epochConverter.tsx:197).
    Please clear/reset date when input is invalid to keep UI state consistent.

Non-blocking cleanup

  • Remove unused imports/functions in epochConverter.tsx (useEffect, Tooltip, Card, Title, CopyOutlined, copyToClipboard) to reduce noise.

Also: Sync your branch with the latest develop using rebase instead of merge. we merged a pr a while go.
Example workflow: git fetch upstream git rebase upstream/develop resolve conflicts if any git push --force-with-lease origin
Overall: URL Parser is good to merge, but I recommend fixing the two Unix timestamp logic issues above before final approval.

@SyedFahad7 these are the changes I need to do in #28 right ?

yea as you said you wanna maintain 2 PR's

yes, made the changes in #28

@SyedFahad7
Copy link
Collaborator

The scope now looks clean and URL-parser-only.

I found one blocking issue to fix before approval:

  • app/libs/developmentToolsConstant.tsx still contains a leftover merge-conflict marker:
    >>>>>>> 74235fe (feat(tools): add visual URL Parser and Query Editor #51)

Please remove that marker and ensure the file ends with valid object syntax only. Once that is cleaned, I can re-check and approve.

@udaykiran243 fix this issue and push to the branch and we can merge then.

@udaykiran243
Copy link
Contributor Author

The scope now looks clean and URL-parser-only.
I found one blocking issue to fix before approval:

  • app/libs/developmentToolsConstant.tsx still contains a leftover merge-conflict marker:
    >>>>>>> 74235fe (feat(tools): add visual URL Parser and Query Editor #51)

Please remove that marker and ensure the file ends with valid object syntax only. Once that is cleaned, I can re-check and approve.

@udaykiran243 fix this issue and push to the branch and we can merge then.

meanwhile could you please review #28

@SyedFahad7
Copy link
Collaborator

The scope now looks clean and URL-parser-only.
I found one blocking issue to fix before approval:

  • app/libs/developmentToolsConstant.tsx still contains a leftover merge-conflict marker:
    >>>>>>> 74235fe (feat(tools): add visual URL Parser and Query Editor #51)

Please remove that marker and ensure the file ends with valid object syntax only. Once that is cleaned, I can re-check and approve.

@udaykiran243 fix this issue and push to the branch and we can merge then.

meanwhile could you please review #28

Yes, LGTM. Have merged it. Rebase the latest develop to this branch as well before you push changes as I'm already seeing conflict issues with the latest develop.

@SyedFahad7
Copy link
Collaborator

@udaykiran243
I just fixed:

  • Added the missing category entry:
    • Category178 with /unix-timestamp-converter
      You must have forgotten to add it.
      I have pushed this fix.

rebase your branch on latest develop before pushing this pr so history stays clean and we avoid merge drift.

@udaykiran243
Copy link
Contributor Author

@udaykiran243 I just fixed:

  • Added the missing category entry:

    • Category178 with /unix-timestamp-converter
      You must have forgotten to add it.
      I have pushed this fix.

rebase your branch on latest develop before pushing this pr so history stays clean and we avoid merge drift.

on it, I was resolving the conflict and thanks for that.

@udaykiran243
Copy link
Contributor Author

hey @SyedFahad7 made the changes, requesting for a review.

@SyedFahad7 SyedFahad7 requested review from SyedFahad7 March 8, 2026 13:36
Copy link
Collaborator

@SyedFahad7 SyedFahad7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates, I rechecked & requested changes are now implemented correctly.

Approved from my side.

@SyedFahad7 SyedFahad7 merged commit c9933ba into betterbugs:develop Mar 8, 2026
2 checks passed
@SyedFahad7
Copy link
Collaborator

🎉 This PR is included in version 1.4.0-develop.8 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(tools): add visual URL Parser and Query Editor

4 participants