@@ -604,17 +604,25 @@ public function storeConversionFromHttpFile(
604
604
return $ generatedConversion ;
605
605
}
606
606
607
+ /**
608
+ * @param null|Closure(GeneratedConversion $item):bool $when
609
+ */
607
610
public function moveGeneratedConversion (
608
611
string $ conversion ,
609
612
?string $ disk = null ,
610
613
?string $ path = null ,
614
+ ?Closure $ when = null
611
615
): ?GeneratedConversion {
612
616
$ generatedConversion = $ this ->getGeneratedConversion ($ conversion );
613
617
614
618
if (! $ generatedConversion ) {
615
619
return null ;
616
620
}
617
621
622
+ if ($ when && ! $ when ($ generatedConversion )) {
623
+ return $ generatedConversion ;
624
+ }
625
+
618
626
if (! $ generatedConversion ->disk || ! $ generatedConversion ->path ) {
619
627
return $ generatedConversion ;
620
628
}
@@ -685,10 +693,19 @@ public function moveFile(
685
693
686
694
/**
687
695
* Recursively move generated and nested conversions files to a new disk
696
+ *
697
+ * @param null|Closure(GeneratedConversion $item):bool $when
688
698
*/
689
- protected function moveGeneratedConversionToDisk (string $ disk , string $ conversion ): ?GeneratedConversion
690
- {
691
- $ generatedConversion = $ this ->moveGeneratedConversion ($ conversion , $ disk );
699
+ protected function moveGeneratedConversionToDisk (
700
+ string $ disk ,
701
+ string $ conversion ,
702
+ ?Closure $ when = null
703
+ ): ?GeneratedConversion {
704
+ $ generatedConversion = $ this ->moveGeneratedConversion (
705
+ $ conversion ,
706
+ $ disk ,
707
+ $ when
708
+ );
692
709
693
710
if (! $ generatedConversion ) {
694
711
return null ;
@@ -697,22 +714,32 @@ protected function moveGeneratedConversionToDisk(string $disk, string $conversio
697
714
foreach ($ generatedConversion ->generated_conversions ->keys () as $ childConversionName ) {
698
715
$ this ->moveGeneratedConversionToDisk (
699
716
disk: $ disk ,
700
- conversion: "{$ conversion }. {$ childConversionName }"
717
+ conversion: "{$ conversion }. {$ childConversionName }" ,
718
+ when: $ when ,
701
719
);
702
720
}
703
721
704
722
return $ generatedConversion ;
705
723
}
706
724
725
+ /**
726
+ * @param null|Closure(GeneratedConversion|static $item):bool $when
727
+ */
707
728
public function moveToDisk (
708
729
string $ disk ,
730
+ ?Closure $ when = null
709
731
): static {
710
732
733
+ if ($ when && ! $ when ($ this )) {
734
+ return $ this ;
735
+ }
736
+
711
737
if ($ this ->generated_conversions ) {
712
738
foreach ($ this ->generated_conversions ->keys () as $ conversionName ) {
713
739
$ this ->moveGeneratedConversionToDisk (
714
740
disk: $ disk ,
715
- conversion: $ conversionName
741
+ conversion: $ conversionName ,
742
+ when: $ when
716
743
);
717
744
}
718
745
}
0 commit comments