fix: misc

This commit is contained in:
Ibrahima G. Coulibaly
2025-07-07 02:29:20 +01:00
parent d2acde3e81
commit e5090014f5
5 changed files with 234 additions and 202 deletions

393
.idea/workspace.xml generated
View File

@@ -4,17 +4,18 @@
<option name="autoReloadType" value="SELECTIVE" /> <option name="autoReloadType" value="SELECTIVE" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="b30e2810-c4c1-4aad-b134-794e52cc1c7d" name="Changes" comment="feat: qr code generation init"> <list default="true" id="b30e2810-c4c1-4aad-b134-794e52cc1c7d" name="Changes" comment="fix: tsc">
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/components/result/ResultFooter.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/components/result/ResultFooter.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/components/result/ToolMultiFileResult.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/components/result/ToolMultiFileResult.tsx" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="FormatOnSaveOptions">
<option name="myRunOnSave" value="true" />
</component>
<component name="Git.Merge.Settings"> <component name="Git.Merge.Settings">
<option name="BRANCH" value="origin/main" /> <option name="BRANCH" value="origin/main" />
</component> </component>
@@ -22,7 +23,7 @@
<option name="PUSH_AUTO_UPDATE" value="true" /> <option name="PUSH_AUTO_UPDATE" value="true" />
<option name="RECENT_BRANCH_BY_REPOSITORY"> <option name="RECENT_BRANCH_BY_REPOSITORY">
<map> <map>
<entry key="$PROJECT_DIR$" value="76d615ec7c369b7342e0f276392a4cba9c531aef" /> <entry key="$PROJECT_DIR$" value="fork/C043/main" />
</map> </map>
</option> </option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@@ -41,142 +42,173 @@
&quot;state&quot;: &quot;OPEN&quot; &quot;state&quot;: &quot;OPEN&quot;
} }
}</component> }</component>
<component name="GitHubPullRequestState">{ <component name="GitHubPullRequestState"><![CDATA[{
&quot;prStates&quot;: [ "prStates": [
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts51PkS9&quot;, "id": "PR_kwDOMJIfts51PkS9",
&quot;number&quot;: 22 "number": 22
}, },
&quot;lastSeen&quot;: 1741207144695 "lastSeen": 1741207144695
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6NiNYl&quot;, "id": "PR_kwDOMJIfts6NiNYl",
&quot;number&quot;: 32 "number": 32
}, },
&quot;lastSeen&quot;: 1741209723869 "lastSeen": 1741209723869
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6Nheyd&quot;, "id": "PR_kwDOMJIfts6Nheyd",
&quot;number&quot;: 31 "number": 31
}, },
&quot;lastSeen&quot;: 1741213371410 "lastSeen": 1741213371410
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6NmRBs&quot;, "id": "PR_kwDOMJIfts6NmRBs",
&quot;number&quot;: 33 "number": 33
}, },
&quot;lastSeen&quot;: 1741282429036 "lastSeen": 1741282429036
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts5zyFTs&quot;, "id": "PR_kwDOMJIfts5zyFTs",
&quot;number&quot;: 15 "number": 15
}, },
&quot;lastSeen&quot;: 1741535540953 "lastSeen": 1741535540953
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6QQB3c&quot;, "id": "PR_kwDOMJIfts6QQB3c",
&quot;number&quot;: 59 "number": 59
}, },
&quot;lastSeen&quot;: 1743018960900 "lastSeen": 1743018960900
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6QMPEg&quot;, "id": "PR_kwDOMJIfts6QMPEg",
&quot;number&quot;: 58 "number": 58
}, },
&quot;lastSeen&quot;: 1743019452983 "lastSeen": 1743019452983
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6QZvRI&quot;, "id": "PR_kwDOMJIfts6QZvRI",
&quot;number&quot;: 61 "number": 61
}, },
&quot;lastSeen&quot;: 1743103196866 "lastSeen": 1743103196866
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6QqPrQ&quot;, "id": "PR_kwDOMJIfts6QqPrQ",
&quot;number&quot;: 73 "number": 73
}, },
&quot;lastSeen&quot;: 1743265865001 "lastSeen": 1743265865001
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6Qp5nI&quot;, "id": "PR_kwDOMJIfts6Qp5nI",
&quot;number&quot;: 72 "number": 72
}, },
&quot;lastSeen&quot;: 1743338472110 "lastSeen": 1743338472110
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6QsjlS&quot;, "id": "PR_kwDOMJIfts6QsjlS",
&quot;number&quot;: 76 "number": 76
}, },
&quot;lastSeen&quot;: 1743352150953 "lastSeen": 1743352150953
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6Q0JBe&quot;, "id": "PR_kwDOMJIfts6Q0JBe",
&quot;number&quot;: 82 "number": 82
}, },
&quot;lastSeen&quot;: 1743470267269 "lastSeen": 1743470267269
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6UE9-x&quot;, "id": "PR_kwDOMJIfts6UE9-x",
&quot;number&quot;: 102 "number": 102
}, },
&quot;lastSeen&quot;: 1747171977348 "lastSeen": 1747171977348
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6XPua_&quot;, "id": "PR_kwDOMJIfts6XPua_",
&quot;number&quot;: 117 "number": 117
}, },
&quot;lastSeen&quot;: 1747929835864 "lastSeen": 1747929835864
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6XY-mZ&quot;, "id": "PR_kwDOMJIfts6XY-mZ",
&quot;number&quot;: 119 "number": 119
}, },
&quot;lastSeen&quot;: 1748028108508 "lastSeen": 1748028108508
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6Xdz4n&quot;, "id": "PR_kwDOMJIfts6Xdz4n",
&quot;number&quot;: 120 "number": 120
}, },
&quot;lastSeen&quot;: 1748282672214 "lastSeen": 1748282672214
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6X_zxl&quot;, "id": "PR_kwDOMJIfts6X_zxl",
&quot;number&quot;: 131 "number": 131
}, },
&quot;lastSeen&quot;: 1748881279494 "lastSeen": 1748881279494
}, },
{ {
&quot;id&quot;: { "id": {
&quot;id&quot;: &quot;PR_kwDOMJIfts6XsHfL&quot;, "id": "PR_kwDOMJIfts6bhieT",
&quot;number&quot;: 128 "number": 152
}, },
&quot;lastSeen&quot;: 1748881318360 "lastSeen": 1751848489082
},
{
"id": {
"id": "PR_kwDOMJIfts6dOyRk",
"number": 154
},
"lastSeen": 1751849436454
},
{
"id": {
"id": "PR_kwDOMJIfts6cHjNi",
"number": 153
},
"lastSeen": 1751849501498
},
{
"id": {
"id": "PR_kwDOMJIfts6Zs1FN",
"number": 145
},
"lastSeen": 1751849770308
},
{
"id": {
"id": "PR_kwDOMJIfts6bgKi9",
"number": 150
},
"lastSeen": 1751850367300
} }
] ]
}</component> }]]></component>
<component name="GithubPullRequestsUISettings">{ <component name="GithubPullRequestsUISettings">{
&quot;selectedUrlAndAccountId&quot;: { &quot;selectedUrlAndAccountId&quot;: {
&quot;url&quot;: &quot;https://github.com/iib0011/omni-tools.git&quot;, &quot;url&quot;: &quot;https://github.com/iib0011/omni-tools.git&quot;,
&quot;accountId&quot;: &quot;45f8cd51-000f-4ba4-a4c6-c4d96ac9b1e5&quot; &quot;accountId&quot;: &quot;45f8cd51-000f-4ba4-a4c6-c4d96ac9b1e5&quot;
} }
}</component> }</component>
<component name="GoLibraries">
<option name="indexEntireGoPath" value="true" />
</component>
<component name="HighlightingSettingsPerFile"> <component name="HighlightingSettingsPerFile">
<setting file="file://$PROJECT_DIR$/node_modules/react-image-crop/dist/index.d.ts" root0="SKIP_INSPECTION" /> <setting file="file://$PROJECT_DIR$/node_modules/react-image-crop/dist/index.d.ts" root0="SKIP_INSPECTION" />
</component> </component>
@@ -199,56 +231,56 @@
<option name="hideEmptyMiddlePackages" value="true" /> <option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" /> <option name="showLibraryContents" value="true" />
</component> </component>
<component name="PropertiesComponent">{ <component name="PropertiesComponent"><![CDATA[{
&quot;keyToString&quot;: { "keyToString": {
&quot;ASKED_ADD_EXTERNAL_FILES&quot;: &quot;true&quot;, "ASKED_ADD_EXTERNAL_FILES": "true",
&quot;ASKED_SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;, "ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
&quot;Docker.Dockerfile build.executor&quot;: &quot;Run&quot;, "Docker.Dockerfile build.executor": "Run",
&quot;Docker.Dockerfile.executor&quot;: &quot;Run&quot;, "Docker.Dockerfile.executor": "Run",
&quot;Playwright.Create transparent PNG.should make png color transparent.executor&quot;: &quot;Run&quot;, "Playwright.Create transparent PNG.should make png color transparent.executor": "Run",
&quot;Playwright.JoinText Component.executor&quot;: &quot;Run&quot;, "Playwright.JoinText Component.executor": "Run",
&quot;Playwright.JoinText Component.should merge text pieces with specified join character.executor&quot;: &quot;Run&quot;, "Playwright.JoinText Component.should merge text pieces with specified join character.executor": "Run",
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;, "RunOnceActivity.OpenProjectViewOnStart": "true",
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;, "RunOnceActivity.ShowReadmeOnStart": "true",
&quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;, "RunOnceActivity.git.unshallow": "true",
&quot;Vitest.compute function (1).executor&quot;: &quot;Run&quot;, "Vitest.compute function (1).executor": "Run",
&quot;Vitest.compute function.executor&quot;: &quot;Run&quot;, "Vitest.compute function.executor": "Run",
&quot;Vitest.mergeText.executor&quot;: &quot;Run&quot;, "Vitest.mergeText.executor": "Run",
&quot;Vitest.mergeText.should merge lines and preserve blank lines when deleteBlankLines is false.executor&quot;: &quot;Run&quot;, "Vitest.mergeText.should merge lines and preserve blank lines when deleteBlankLines is false.executor": "Run",
&quot;Vitest.mergeText.should merge lines, preserve blank lines and trailing spaces when both deleteBlankLines and deleteTrailingSpaces are false.executor&quot;: &quot;Run&quot;, "Vitest.mergeText.should merge lines, preserve blank lines and trailing spaces when both deleteBlankLines and deleteTrailingSpaces are false.executor": "Run",
&quot;Vitest.parsePageRanges.executor&quot;: &quot;Run&quot;, "Vitest.parsePageRanges.executor": "Run",
&quot;Vitest.removeDuplicateLines function.executor&quot;: &quot;Run&quot;, "Vitest.removeDuplicateLines function.executor": "Run",
&quot;Vitest.removeDuplicateLines function.newlines option.executor&quot;: &quot;Run&quot;, "Vitest.removeDuplicateLines function.newlines option.executor": "Run",
&quot;Vitest.removeDuplicateLines function.newlines option.should filter newlines when newlines is set to filter.executor&quot;: &quot;Run&quot;, "Vitest.removeDuplicateLines function.newlines option.should filter newlines when newlines is set to filter.executor": "Run",
&quot;Vitest.replaceText function (regexp mode).should return the original text when passed an invalid regexp.executor&quot;: &quot;Run&quot;, "Vitest.replaceText function (regexp mode).should return the original text when passed an invalid regexp.executor": "Run",
&quot;Vitest.replaceText function.executor&quot;: &quot;Run&quot;, "Vitest.replaceText function.executor": "Run",
&quot;Vitest.timeBetweenDates.executor&quot;: &quot;Run&quot;, "Vitest.timeBetweenDates.executor": "Run",
&quot;git-widget-placeholder&quot;: &quot;main&quot;, "git-widget-placeholder": "#150 on fork/omenmn/pdftopng",
&quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;, "ignore.virus.scanning.warn.message": "true",
&quot;kotlin-language-version-configured&quot;: &quot;true&quot;, "kotlin-language-version-configured": "true",
&quot;last_opened_file_path&quot;: &quot;C:/Users/Ibrahima/IdeaProjects/omni-tools/src/pages/tools/json&quot;, "last_opened_file_path": "C:/Users/Ibrahima/IdeaProjects/omni-tools/src/pages/tools/json",
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;, "node.js.detected.package.eslint": "true",
&quot;node.js.detected.package.tslint&quot;: &quot;true&quot;, "node.js.detected.package.tslint": "true",
&quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;, "node.js.selected.package.eslint": "(autodetect)",
&quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;, "node.js.selected.package.tslint": "(autodetect)",
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;, "nodejs_package_manager_path": "npm",
&quot;npm.build.executor&quot;: &quot;Run&quot;, "npm.build.executor": "Run",
&quot;npm.dev.executor&quot;: &quot;Run&quot;, "npm.dev.executor": "Run",
&quot;npm.lint.executor&quot;: &quot;Run&quot;, "npm.lint.executor": "Run",
&quot;npm.prebuild.executor&quot;: &quot;Run&quot;, "npm.prebuild.executor": "Run",
&quot;npm.script:create:tool.executor&quot;: &quot;Run&quot;, "npm.script:create:tool.executor": "Run",
&quot;npm.test.executor&quot;: &quot;Run&quot;, "npm.test.executor": "Run",
&quot;npm.test:e2e.executor&quot;: &quot;Run&quot;, "npm.test:e2e.executor": "Run",
&quot;npm.test:e2e:run.executor&quot;: &quot;Run&quot;, "npm.test:e2e:run.executor": "Run",
&quot;prettierjs.PrettierConfiguration.Package&quot;: &quot;C:\\Users\\Ibrahima\\IdeaProjects\\omni-tools\\node_modules\\prettier&quot;, "prettierjs.PrettierConfiguration.Package": "C:\\Users\\Ibrahima\\IdeaProjects\\omni-tools\\node_modules\\prettier",
&quot;project.structure.last.edited&quot;: &quot;Problems&quot;, "project.structure.last.edited": "Problems",
&quot;project.structure.proportion&quot;: &quot;0.0&quot;, "project.structure.proportion": "0.0",
&quot;project.structure.side.proportion&quot;: &quot;0.2&quot;, "project.structure.side.proportion": "0.2",
&quot;settings.editor.selected.configurable&quot;: &quot;refactai_advanced_settings&quot;, "settings.editor.selected.configurable": "refactai_advanced_settings",
&quot;ts.external.directory.path&quot;: &quot;C:\\Users\\Ibrahima\\IdeaProjects\\omni-tools\\node_modules\\typescript\\lib&quot;, "ts.external.directory.path": "C:\\Users\\Ibrahima\\IdeaProjects\\omni-tools\\node_modules\\typescript\\lib",
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot; "vue.rearranger.settings.migration": "true"
} }
}</component> }]]></component>
<component name="ReactDesignerToolWindowState"> <component name="ReactDesignerToolWindowState">
<option name="myId2Visible"> <option name="myId2Visible">
<map> <map>
@@ -353,11 +385,11 @@
</list> </list>
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="npm.dev" />
<item itemvalue="Vitest.replaceText function (regexp mode).should return the original text when passed an invalid regexp" /> <item itemvalue="Vitest.replaceText function (regexp mode).should return the original text when passed an invalid regexp" />
<item itemvalue="Vitest.parsePageRanges" /> <item itemvalue="Vitest.parsePageRanges" />
<item itemvalue="Vitest.timeBetweenDates" /> <item itemvalue="Vitest.timeBetweenDates" />
<item itemvalue="Vitest.calculateTimeBetweenDates" /> <item itemvalue="Vitest.calculateTimeBetweenDates" />
<item itemvalue="npm.dev" />
</list> </list>
</recent_temporary> </recent_temporary>
</component> </component>
@@ -462,46 +494,7 @@
<workItem from="1748026506667" duration="2536000" /> <workItem from="1748026506667" duration="2536000" />
<workItem from="1748282636141" duration="478000" /> <workItem from="1748282636141" duration="478000" />
<workItem from="1749047510481" duration="879000" /> <workItem from="1749047510481" duration="879000" />
</task> <workItem from="1751846528195" duration="4358000" />
<task id="LOCAL-00152" summary="feat: crop png">
<option name="closed" value="true" />
<created>1741492688761</created>
<option name="number" value="00152" />
<option name="presentableId" value="LOCAL-00152" />
<option name="project" value="LOCAL" />
<updated>1741492688761</updated>
</task>
<task id="LOCAL-00153" summary="chore: remove unnecessary files">
<option name="closed" value="true" />
<created>1741492943849</created>
<option name="number" value="00153" />
<option name="presentableId" value="LOCAL-00153" />
<option name="project" value="LOCAL" />
<updated>1741492943849</updated>
</task>
<task id="LOCAL-00154" summary="refactor: validateJson">
<option name="closed" value="true" />
<created>1741535390090</created>
<option name="number" value="00154" />
<option name="presentableId" value="LOCAL-00154" />
<option name="project" value="LOCAL" />
<updated>1741535390090</updated>
</task>
<task id="LOCAL-00155" summary="refactor: use ToolContent">
<option name="closed" value="true" />
<created>1741540939154</created>
<option name="number" value="00155" />
<option name="presentableId" value="LOCAL-00155" />
<option name="project" value="LOCAL" />
<updated>1741540939154</updated>
</task>
<task id="LOCAL-00156" summary="feat: missing tools">
<option name="closed" value="true" />
<created>1741542318259</created>
<option name="number" value="00156" />
<option name="presentableId" value="LOCAL-00156" />
<option name="project" value="LOCAL" />
<updated>1741542318259</updated>
</task> </task>
<task id="LOCAL-00157" summary="refactor: use ToolContent"> <task id="LOCAL-00157" summary="refactor: use ToolContent">
<option name="closed" value="true" /> <option name="closed" value="true" />
@@ -855,7 +848,47 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1749147227565</updated> <updated>1749147227565</updated>
</task> </task>
<option name="localTasksCounter" value="201" /> <task id="LOCAL-00201" summary="chore: rename from Omni Tools to OmniTools">
<option name="closed" value="true" />
<created>1751630993003</created>
<option name="number" value="00201" />
<option name="presentableId" value="LOCAL-00201" />
<option name="project" value="LOCAL" />
<updated>1751630993003</updated>
</task>
<task id="LOCAL-00202" summary="fix: tools by category page title">
<option name="closed" value="true" />
<created>1751846877842</created>
<option name="number" value="00202" />
<option name="presentableId" value="LOCAL-00202" />
<option name="project" value="LOCAL" />
<updated>1751846877842</updated>
</task>
<task id="LOCAL-00203" summary="chore: use scrollY">
<option name="closed" value="true" />
<created>1751848478091</created>
<option name="number" value="00203" />
<option name="presentableId" value="LOCAL-00203" />
<option name="project" value="LOCAL" />
<updated>1751848478091</updated>
</task>
<task id="LOCAL-00204" summary="chore: remove flip x and y">
<option name="closed" value="true" />
<created>1751849423899</created>
<option name="number" value="00204" />
<option name="presentableId" value="LOCAL-00204" />
<option name="project" value="LOCAL" />
<updated>1751849423899</updated>
</task>
<task id="LOCAL-00205" summary="fix: tsc">
<option name="closed" value="true" />
<created>1751850152784</created>
<option name="number" value="00205" />
<option name="presentableId" value="LOCAL-00205" />
<option name="project" value="LOCAL" />
<updated>1751850152784</updated>
</task>
<option name="localTasksCounter" value="206" />
<servers /> <servers />
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
@@ -902,11 +935,6 @@
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" /> <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_NEW_TODO" value="false" /> <option name="CHECK_NEW_TODO" value="false" />
<option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" /> <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
<MESSAGE value="fix: gif speed" />
<MESSAGE value="fix: tsc" />
<MESSAGE value="fix: background color" />
<MESSAGE value="docs: github trendings" />
<MESSAGE value="docs: optimize" />
<MESSAGE value="fix: stars button width for 1k+ " /> <MESSAGE value="fix: stars button width for 1k+ " />
<MESSAGE value="feat: compress pdf" /> <MESSAGE value="feat: compress pdf" />
<MESSAGE value="refactor: compress pdf" /> <MESSAGE value="refactor: compress pdf" />
@@ -927,7 +955,16 @@
<MESSAGE value="chore: remove unnecessary prop" /> <MESSAGE value="chore: remove unnecessary prop" />
<MESSAGE value="fix: compute flow" /> <MESSAGE value="fix: compute flow" />
<MESSAGE value="feat: qr code generation init" /> <MESSAGE value="feat: qr code generation init" />
<option name="LAST_COMMIT_MESSAGE" value="feat: qr code generation init" /> <MESSAGE value="chore: rename from Omni Tools to OmniTools" />
<MESSAGE value="fix: tools by category page title" />
<MESSAGE value="chore: use scrollY" />
<MESSAGE value="chore: remove flip x and y" />
<MESSAGE value="fix: tsc" />
<option name="LAST_COMMIT_MESSAGE" value="fix: tsc" />
</component>
<component name="VgoProject">
<integration-enabled>false</integration-enabled>
<settings-migrated>true</settings-migrated>
</component> </component>
<component name="XSLT-Support.FileAssociations.UIState"> <component name="XSLT-Support.FileAssociations.UIState">
<expand /> <expand />

2
package-lock.json generated
View File

@@ -39,7 +39,7 @@
"notistack": "^3.0.1", "notistack": "^3.0.1",
"omggif": "^1.0.10", "omggif": "^1.0.10",
"pdf-lib": "^1.17.1", "pdf-lib": "^1.17.1",
"pdfjs-dist": "^5.3.31", "pdfjs-dist": "^5.2.133",
"playwright": "^1.45.0", "playwright": "^1.45.0",
"qrcode": "^1.5.4", "qrcode": "^1.5.4",
"rc-slider": "^11.1.8", "rc-slider": "^11.1.8",

View File

@@ -56,7 +56,7 @@
"notistack": "^3.0.1", "notistack": "^3.0.1",
"omggif": "^1.0.10", "omggif": "^1.0.10",
"pdf-lib": "^1.17.1", "pdf-lib": "^1.17.1",
"pdfjs-dist": "^5.3.31", "pdfjs-dist": "^5.2.133",
"playwright": "^1.45.0", "playwright": "^1.45.0",
"qrcode": "^1.5.4", "qrcode": "^1.5.4",
"rc-slider": "^11.1.8", "rc-slider": "^11.1.8",

View File

@@ -8,12 +8,14 @@ export default function ResultFooter({
handleDownload, handleDownload,
handleCopy, handleCopy,
disabled, disabled,
hideCopy hideCopy,
downloadLabel = 'Download'
}: { }: {
handleDownload: () => void; handleDownload: () => void;
handleCopy: () => void; handleCopy?: () => void;
disabled?: boolean; disabled?: boolean;
hideCopy?: boolean; hideCopy?: boolean;
downloadLabel?: string;
}) { }) {
return ( return (
<Stack mt={1} direction={'row'} spacing={2}> <Stack mt={1} direction={'row'} spacing={2}>
@@ -22,7 +24,7 @@ export default function ResultFooter({
onClick={handleDownload} onClick={handleDownload}
startIcon={<DownloadIcon />} startIcon={<DownloadIcon />}
> >
Save as {downloadLabel}
</Button> </Button>
{!hideCopy && ( {!hideCopy && (
<Button <Button

View File

@@ -49,11 +49,10 @@ export default function ToolFileResult({
return ( return (
<Box> <Box>
<InputHeader title={title} /> <InputHeader title={title} />
<Box <Box
sx={{ sx={{
width: '100%', width: '100%',
maxHeight: globalInputHeight, height: globalInputHeight,
overflowY: 'auto', overflowY: 'auto',
display: 'flex', display: 'flex',
flexDirection: 'column', flexDirection: 'column',
@@ -62,6 +61,7 @@ export default function ToolFileResult({
borderRadius: 2, borderRadius: 2,
boxShadow: '5', boxShadow: '5',
bgcolor: 'background.paper', bgcolor: 'background.paper',
alignItems: 'center',
p: 2 p: 2
}} }}
> >
@@ -80,7 +80,8 @@ export default function ToolFileResult({
{loadingText}... This may take a moment. {loadingText}... This may take a moment.
</Typography> </Typography>
</Box> </Box>
) : value.length > 0 ? ( ) : (
value.length > 0 &&
value.map((file, idx) => { value.map((file, idx) => {
const preview = URL.createObjectURL(file); const preview = URL.createObjectURL(file);
const fileType = getFileType(file); const fileType = getFileType(file);
@@ -95,7 +96,10 @@ export default function ToolFileResult({
: 'none', : 'none',
p: 1, p: 1,
border: '1px solid #ddd', border: '1px solid #ddd',
borderRadius: 2 borderRadius: 2,
display: 'flex',
flexDirection: 'column',
alignItems: 'center'
}} }}
> >
{fileType === 'image' && ( {fileType === 'image' && (
@@ -121,31 +125,20 @@ export default function ToolFileResult({
onClick={() => handleDownload(file)} onClick={() => handleDownload(file)}
size="small" size="small"
sx={{ mt: 1 }} sx={{ mt: 1 }}
variant="outlined" variant="contained"
> >
Download {file.name} Download {file.name}
</Button> </Button>
</Box> </Box>
); );
}) })
) : (
<Typography>No output available yet.</Typography>
)} )}
</Box> </Box>
{zipFile && (
<Box sx={{ mt: 2, textAlign: 'center' }}>
<Button variant="contained" onClick={() => handleDownload(zipFile)}>
Download All as ZIP
</Button>
</Box>
)}
<ResultFooter <ResultFooter
disabled downloadLabel={'Download All as ZIP'}
hideCopy hideCopy
handleCopy={() => {}} disabled={!zipFile}
handleDownload={() => {}} handleDownload={() => zipFile && handleDownload(zipFile)}
/> />
</Box> </Box>
); );