@@ -81,30 +81,24 @@ public function preview(Request $request, Kernel $kernel): mixed
8181 ->siteId ($ request ->integer ('siteId ' ))
8282 ->status (null );
8383
84- if ($ draftId = $ request ->integer ('draftId ' )) {
85- $ element = $ query
86- ->draftId ($ draftId )
87- ->one ();
88- } elseif ($ revisionId = $ request ->integer ('revisionId ' )) {
89- $ element = $ query
90- ->revisionId ($ revisionId )
91- ->one ();
92- } else {
93- if ($ userId = $ request ->integer ('userId ' )) {
94- // First check if there's a provisional draft
95- $ user = \Craft::$ app ->getUsers ()->getUserById ($ userId );
96- ElementHelper::setProvisionalDraftUser ($ user );
84+ $ elementFn = match (true ) {
85+ (bool ) $ draftId = $ request ->integer ('draftId ' ) => fn () => $ query ->draftId ($ draftId )->one (),
86+ (bool ) $ revisionId = $ request ->integer ('revisionId ' ) => fn () => $ query ->revisionId ($ revisionId )->one (),
87+ (bool ) $ userId = $ request ->integer ('userId ' ) => function () use ($ userId , $ query , $ request ) {
88+ ElementHelper::setProvisionalDraftUser ($ userId );
89+
9790 $ element = (clone $ query )
9891 ->draftOf ($ request ->integer ('canonicalId ' ))
9992 ->provisionalDrafts ()
10093 ->draftCreator ($ userId )
10194 ->one ();
102- }
10395
104- $ element ??= $ query ->id ($ request ->integer ('canonicalId ' ))->one ();
105- }
96+ return $ element ?? $ query ->id ($ request ->integer ('canonicalId ' ))->one ();
97+ },
98+ default => fn () null,
99+ };
106100
107- if ($ element ) {
101+ if ($ element = $ elementFn () ) {
108102 if (! $ element ->lft && $ element ->getIsDerivative ()) {
109103 // See if we can add structure data to it
110104 $ canonical = $ element ->getCanonical (true );
0 commit comments