diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 8b52a7f..cce7313 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -6,8 +6,7 @@
-
-
+
@@ -43,108 +42,108 @@
"state": "OPEN"
}
}
- {
+ "prStates": [
{
- "id": {
- "id": "PR_kwDOMJIfts51PkS9",
- "number": 22
+ "id": {
+ "id": "PR_kwDOMJIfts51PkS9",
+ "number": 22
},
- "lastSeen": 1741207144695
+ "lastSeen": 1741207144695
},
{
- "id": {
- "id": "PR_kwDOMJIfts6NiNYl",
- "number": 32
+ "id": {
+ "id": "PR_kwDOMJIfts6NiNYl",
+ "number": 32
},
- "lastSeen": 1741209723869
+ "lastSeen": 1741209723869
},
{
- "id": {
- "id": "PR_kwDOMJIfts6Nheyd",
- "number": 31
+ "id": {
+ "id": "PR_kwDOMJIfts6Nheyd",
+ "number": 31
},
- "lastSeen": 1741213371410
+ "lastSeen": 1741213371410
},
{
- "id": {
- "id": "PR_kwDOMJIfts6NmRBs",
- "number": 33
+ "id": {
+ "id": "PR_kwDOMJIfts6NmRBs",
+ "number": 33
},
- "lastSeen": 1741282429036
+ "lastSeen": 1741282429036
},
{
- "id": {
- "id": "PR_kwDOMJIfts5zyFTs",
- "number": 15
+ "id": {
+ "id": "PR_kwDOMJIfts5zyFTs",
+ "number": 15
},
- "lastSeen": 1741535540953
+ "lastSeen": 1741535540953
},
{
- "id": {
- "id": "PR_kwDOMJIfts6QQB3c",
- "number": 59
+ "id": {
+ "id": "PR_kwDOMJIfts6QQB3c",
+ "number": 59
},
- "lastSeen": 1743018960900
+ "lastSeen": 1743018960900
},
{
- "id": {
- "id": "PR_kwDOMJIfts6QMPEg",
- "number": 58
+ "id": {
+ "id": "PR_kwDOMJIfts6QMPEg",
+ "number": 58
},
- "lastSeen": 1743019452983
+ "lastSeen": 1743019452983
},
{
- "id": {
- "id": "PR_kwDOMJIfts6QZvRI",
- "number": 61
+ "id": {
+ "id": "PR_kwDOMJIfts6QZvRI",
+ "number": 61
},
- "lastSeen": 1743103196866
+ "lastSeen": 1743103196866
},
{
- "id": {
- "id": "PR_kwDOMJIfts6QqPrQ",
- "number": 73
+ "id": {
+ "id": "PR_kwDOMJIfts6QqPrQ",
+ "number": 73
},
- "lastSeen": 1743265865001
+ "lastSeen": 1743265865001
},
{
- "id": {
- "id": "PR_kwDOMJIfts6Qp5nI",
- "number": 72
+ "id": {
+ "id": "PR_kwDOMJIfts6Qp5nI",
+ "number": 72
},
- "lastSeen": 1743338472110
+ "lastSeen": 1743338472110
},
{
- "id": {
- "id": "PR_kwDOMJIfts6QsjlS",
- "number": 76
+ "id": {
+ "id": "PR_kwDOMJIfts6QsjlS",
+ "number": 76
},
- "lastSeen": 1743352150953
+ "lastSeen": 1743352150953
},
{
- "id": {
- "id": "PR_kwDOMJIfts6Q0JBe",
- "number": 82
+ "id": {
+ "id": "PR_kwDOMJIfts6Q0JBe",
+ "number": 82
},
- "lastSeen": 1743470267269
+ "lastSeen": 1743470267269
},
{
- "id": {
- "id": "PR_kwDOMJIfts6UE9-x",
- "number": 102
+ "id": {
+ "id": "PR_kwDOMJIfts6UE9-x",
+ "number": 102
},
- "lastSeen": 1747171977348
+ "lastSeen": 1747171977348
},
{
- "id": {
- "id": "PR_kwDOMJIfts6XPua_",
- "number": 117
+ "id": {
+ "id": "PR_kwDOMJIfts6XPua_",
+ "number": 117
},
- "lastSeen": 1747929835864
+ "lastSeen": 1747929835864
}
]
-}]]>
+}
{
"selectedUrlAndAccountId": {
"url": "https://github.com/iib0011/omni-tools.git",
@@ -197,7 +196,7 @@
"Vitest.replaceText function (regexp mode).should return the original text when passed an invalid regexp.executor": "Run",
"Vitest.replaceText function.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",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "C:/Users/Ibrahima/IdeaProjects/omni-tools/src",
diff --git a/src/pages/tools/video/crop-video/index.tsx b/src/pages/tools/video/crop-video/index.tsx
index b1bcbb6..07872b3 100644
--- a/src/pages/tools/video/crop-video/index.tsx
+++ b/src/pages/tools/video/crop-video/index.tsx
@@ -9,7 +9,7 @@ import ToolVideoInput from '@components/input/ToolVideoInput';
import { cropVideo, getVideoDimensions } from './service';
import { InitialValuesType } from './types';
-export const initialValues: InitialValuesType = {
+const initialValues: InitialValuesType = {
x: 0,
y: 0,
width: 100,
@@ -26,23 +26,6 @@ export default function CropVideo({ title }: ToolComponentProps) {
} | null>(null);
const [processingError, setProcessingError] = useState('');
- 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 => {
if (!videoDimensions) return '';
@@ -177,13 +160,40 @@ export default function CropVideo({ title }: ToolComponentProps) {
(
{
+ 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'}
/>
- }
+ )}
resultComponent={
loading ? (