로그인 후 첫 페이지가 로드되기 전에 홈페이지만 변경하는 방법

https://ejopa.discourse.group/ 에 랜딩 페이지 테마 컴포넌트가 있습니다.

잘 동작하고 있습니다. 로그인한 사용자에게는 표시되지 않도록 해야 합니다. 초기화 파일에서 홈 페이지를 설정하는 코드가 다음과 같습니다:

export default apiInitializer((api) => {
  const siteSettings = api.container.lookup("service:site-settings");
  const topMenu = siteSettings.top_menu || ""; // undefined에 대비
  const globalDefaultHomepage = topMenu.split("|")[0].trim();
  const currentUser = api.getCurrentUser();

  if (currentUser && defaultHomepage() === "custom") {
    setDefaultHomepage(globalDefaultHomepage);
  }
  api.renderInOutlet("custom-homepage", LandingPage);

});

잘 동작하지만, 처음 로그인할 때만 예외가 발생합니다. /custom 로 리디렉션됩니다. 아이콘을 클릭하면 올바른 위치로 이동하지만, 최초 로드 시에는 그렇지 않습니다.

로그인 시 올바른 홈 페이지로 리디렉션하도록 . . . 무언가 . . .를 해야 합니다.

AI가 다음과 같은 것을 제안했지만, 작동하지 않는 것 같습니다.

      api.onAppEvent('application:after-login', afterLoginHandler);

수정! 거의 성공했지만, 로그인 후 랜딩 페이지가 잠시 표시됩니다

import { apiInitializer } from "discourse/lib/api";
import { defaultHomepage, setDefaultHomepage } from "discourse/lib/utilities";
import LandingPage from "../components/landing-page";

export default apiInitializer((api) => {
  const siteSettings = api.container.lookup("service:site-settings");
  const topMenu = siteSettings.top_menu || ""; // undefined에 대비
  const globalDefaultHomepage = topMenu.split("|")[0].trim();
  const currentUser = api.getCurrentUser();

  api.onPageChange((url) => {
    const isCustom = url === "/custom";
    const router = api.container.lookup("service:router");
    const currentUser = api.container.lookup("service:current-user");
    if (currentUser && isCustom) {
      router.transitionTo("discovery." + defaultHomepage());
    }
  });

  if (currentUser && defaultHomepage() === "custom") {
    setDefaultHomepage(globalDefaultHomepage);
  }
  api.renderInOutlet("custom-homepage", LandingPage);
});

이것이 제가 할 수 있는 최선인 것 같습니다. 제가 잘못 이해하고 있는 건가요?

이것이 redirect_users_to_top_page 설정 때문일 수도 있겠다는 생각이 듭니다. 이 설정도 첫 방문 시 사용자를 리다이렉트하기 때문입니다. 하지만 /top이 아니라 /custom에서 끝나므로, 아마도 해당 설정 때문은 아닐 것 같습니다.

찾아보려 했지만 그게 무엇이었는지 기억나지 않네요!

맞습니다.

그리고 "새 사용자 및 오랫동안 접속하지 않은 사용자를 자동으로 리디렉션"도 해당되지 않는데, 우리는 새 사용자가 아니기도 하고 오랫동안 접속하지 않은 사용자도 아니거든요. . .

정말 감사합니다!