feat: add image crop modal to space icon picker

Wire react-easy-crop into CreateSpace so users can crop and zoom before
uploading a space icon. Adds reusable ImageCropModal component and
canvas crop utility for future use in space settings and avatar editing.
This commit is contained in:
Jannis Braun
2026-03-08 22:08:58 +01:00
parent a7b5d819bf
commit b598236f82
5 changed files with 402 additions and 8 deletions
+21
View File
@@ -123,6 +123,9 @@ importers:
react-dom:
specifier: ^18.3.1
version: 18.3.1(react@18.3.1)
react-easy-crop:
specifier: ^5.5.6
version: 5.5.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-markdown:
specifier: ^9.0.1
version: 9.1.0(@types/react@18.3.28)(react@18.3.1)
@@ -3145,6 +3148,9 @@ packages:
resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
engines: {node: '>=10'}
normalize-wheel@1.0.1:
resolution: {integrity: sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==}
npmlog@6.0.2:
resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
@@ -3397,6 +3403,12 @@ packages:
peerDependencies:
react: ^18.3.1
react-easy-crop@5.5.6:
resolution: {integrity: sha512-Jw3/ozs8uXj3NpL511Suc4AHY+mLRO23rUgipXvNYKqezcFSYHxe4QXibBymkOoY6oOtLVMPO2HNPRHYvMPyTw==}
peerDependencies:
react: '>=16.4.0'
react-dom: '>=16.4.0'
react-is@17.0.2:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
@@ -7309,6 +7321,8 @@ snapshots:
normalize-url@6.1.0: {}
normalize-wheel@1.0.1: {}
npmlog@6.0.2:
dependencies:
are-we-there-yet: 3.0.1
@@ -7560,6 +7574,13 @@ snapshots:
react: 18.3.1
scheduler: 0.23.2
react-easy-crop@5.5.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
normalize-wheel: 1.0.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
tslib: 2.8.1
react-is@17.0.2: {}
react-markdown@9.1.0(@types/react@18.3.28)(react@18.3.1):