chore: change default dimensions

This commit is contained in:
Ibrahima G. Coulibaly
2025-05-26 19:41:27 +01:00
parent f0ea1c1b80
commit 3e149cdc56
2 changed files with 92 additions and 83 deletions

123
.idea/workspace.xml generated
View File

@@ -6,8 +6,7 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="b30e2810-c4c1-4aad-b134-794e52cc1c7d" name="Changes" comment="fix: misc"> <list default="true" id="b30e2810-c4c1-4aad-b134-794e52cc1c7d" name="Changes" comment="fix: misc">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/components/input/BaseFileInput.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/components/input/BaseFileInput.tsx" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/pages/tools/video/crop-video/index.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/tools/video/crop-video/index.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/tools/pdf/protect-pdf/service.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/tools/pdf/protect-pdf/service.ts" 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" />
@@ -43,108 +42,108 @@
&quot;state&quot;: &quot;OPEN&quot; &quot;state&quot;: &quot;OPEN&quot;
} }
}</component> }</component>
<component name="GitHubPullRequestState"><![CDATA[{ <component name="GitHubPullRequestState">{
"prStates": [ &quot;prStates&quot;: [
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts51PkS9", &quot;id&quot;: &quot;PR_kwDOMJIfts51PkS9&quot;,
"number": 22 &quot;number&quot;: 22
}, },
"lastSeen": 1741207144695 &quot;lastSeen&quot;: 1741207144695
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts6NiNYl", &quot;id&quot;: &quot;PR_kwDOMJIfts6NiNYl&quot;,
"number": 32 &quot;number&quot;: 32
}, },
"lastSeen": 1741209723869 &quot;lastSeen&quot;: 1741209723869
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts6Nheyd", &quot;id&quot;: &quot;PR_kwDOMJIfts6Nheyd&quot;,
"number": 31 &quot;number&quot;: 31
}, },
"lastSeen": 1741213371410 &quot;lastSeen&quot;: 1741213371410
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts6NmRBs", &quot;id&quot;: &quot;PR_kwDOMJIfts6NmRBs&quot;,
"number": 33 &quot;number&quot;: 33
}, },
"lastSeen": 1741282429036 &quot;lastSeen&quot;: 1741282429036
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts5zyFTs", &quot;id&quot;: &quot;PR_kwDOMJIfts5zyFTs&quot;,
"number": 15 &quot;number&quot;: 15
}, },
"lastSeen": 1741535540953 &quot;lastSeen&quot;: 1741535540953
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts6QQB3c", &quot;id&quot;: &quot;PR_kwDOMJIfts6QQB3c&quot;,
"number": 59 &quot;number&quot;: 59
}, },
"lastSeen": 1743018960900 &quot;lastSeen&quot;: 1743018960900
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts6QMPEg", &quot;id&quot;: &quot;PR_kwDOMJIfts6QMPEg&quot;,
"number": 58 &quot;number&quot;: 58
}, },
"lastSeen": 1743019452983 &quot;lastSeen&quot;: 1743019452983
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts6QZvRI", &quot;id&quot;: &quot;PR_kwDOMJIfts6QZvRI&quot;,
"number": 61 &quot;number&quot;: 61
}, },
"lastSeen": 1743103196866 &quot;lastSeen&quot;: 1743103196866
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts6QqPrQ", &quot;id&quot;: &quot;PR_kwDOMJIfts6QqPrQ&quot;,
"number": 73 &quot;number&quot;: 73
}, },
"lastSeen": 1743265865001 &quot;lastSeen&quot;: 1743265865001
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts6Qp5nI", &quot;id&quot;: &quot;PR_kwDOMJIfts6Qp5nI&quot;,
"number": 72 &quot;number&quot;: 72
}, },
"lastSeen": 1743338472110 &quot;lastSeen&quot;: 1743338472110
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts6QsjlS", &quot;id&quot;: &quot;PR_kwDOMJIfts6QsjlS&quot;,
"number": 76 &quot;number&quot;: 76
}, },
"lastSeen": 1743352150953 &quot;lastSeen&quot;: 1743352150953
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts6Q0JBe", &quot;id&quot;: &quot;PR_kwDOMJIfts6Q0JBe&quot;,
"number": 82 &quot;number&quot;: 82
}, },
"lastSeen": 1743470267269 &quot;lastSeen&quot;: 1743470267269
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts6UE9-x", &quot;id&quot;: &quot;PR_kwDOMJIfts6UE9-x&quot;,
"number": 102 &quot;number&quot;: 102
}, },
"lastSeen": 1747171977348 &quot;lastSeen&quot;: 1747171977348
}, },
{ {
"id": { &quot;id&quot;: {
"id": "PR_kwDOMJIfts6XPua_", &quot;id&quot;: &quot;PR_kwDOMJIfts6XPua_&quot;,
"number": 117 &quot;number&quot;: 117
}, },
"lastSeen": 1747929835864 &quot;lastSeen&quot;: 1747929835864
} }
] ]
}]]></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;,
@@ -197,7 +196,7 @@
"Vitest.replaceText function (regexp mode).should return the original text when passed an invalid regexp.executor": "Run", "Vitest.replaceText function (regexp mode).should return the original text when passed an invalid regexp.executor": "Run",
"Vitest.replaceText function.executor": "Run", "Vitest.replaceText function.executor": "Run",
"Vitest.timeBetweenDates.executor": "Run", "Vitest.timeBetweenDates.executor": "Run",
"git-widget-placeholder": "#117 on fork/nevolodia/flip-video", "git-widget-placeholder": "#122 on fork/nevolodia/crop-video",
"ignore.virus.scanning.warn.message": "true", "ignore.virus.scanning.warn.message": "true",
"kotlin-language-version-configured": "true", "kotlin-language-version-configured": "true",
"last_opened_file_path": "C:/Users/Ibrahima/IdeaProjects/omni-tools/src", "last_opened_file_path": "C:/Users/Ibrahima/IdeaProjects/omni-tools/src",

View File

@@ -9,7 +9,7 @@ import ToolVideoInput from '@components/input/ToolVideoInput';
import { cropVideo, getVideoDimensions } from './service'; import { cropVideo, getVideoDimensions } from './service';
import { InitialValuesType } from './types'; import { InitialValuesType } from './types';
export const initialValues: InitialValuesType = { const initialValues: InitialValuesType = {
x: 0, x: 0,
y: 0, y: 0,
width: 100, width: 100,
@@ -26,23 +26,6 @@ export default function CropVideo({ title }: ToolComponentProps) {
} | null>(null); } | null>(null);
const [processingError, setProcessingError] = useState<string>(''); const [processingError, setProcessingError] = useState<string>('');
useEffect(() => {
if (input) {
getVideoDimensions(input)
.then((dimensions) => {
setVideoDimensions(dimensions);
setProcessingError('');
})
.catch((error) => {
console.error('Error getting video dimensions:', error);
setProcessingError('Failed to load video dimensions');
});
} else {
setVideoDimensions(null);
setProcessingError('');
}
}, [input]);
const validateDimensions = (values: InitialValuesType): string => { const validateDimensions = (values: InitialValuesType): string => {
if (!videoDimensions) return ''; if (!videoDimensions) return '';
@@ -177,13 +160,40 @@ export default function CropVideo({ title }: ToolComponentProps) {
<ToolContent <ToolContent
title={title} title={title}
input={input} input={input}
inputComponent={ renderCustomInput={(values, setFieldValue) => (
<ToolVideoInput <ToolVideoInput
value={input} value={input}
onChange={setInput} onChange={(video) => {
if (video) {
getVideoDimensions(video)
.then((dimensions) => {
const newOptions: InitialValuesType = {
x: dimensions.width / 4,
y: dimensions.height / 4,
width: dimensions.width / 2,
height: dimensions.height / 2
};
setFieldValue('x', newOptions.x);
setFieldValue('y', newOptions.y);
setFieldValue('width', newOptions.width);
setFieldValue('height', newOptions.height);
setVideoDimensions(dimensions);
setProcessingError('');
})
.catch((error) => {
console.error('Error getting video dimensions:', error);
setProcessingError('Failed to load video dimensions');
});
} else {
setVideoDimensions(null);
setProcessingError('');
}
setInput(video);
}}
title={'Input Video'} title={'Input Video'}
/> />
} )}
resultComponent={ resultComponent={
loading ? ( loading ? (
<ToolFileResult <ToolFileResult