nav-mode.js 1.38 KB
export const CHECKIN_NAV_MODE = {
  LEGACY: 'legacy',
  JLS: 'jls',
  NONE: 'none',
};

export const CHECKIN_ACTIVE_TAB = {
  HOME: 'home',
  MESSAGE: 'message',
  MINE: 'mine',
};

const NAV_HEIGHT = '80px';

export function resolveCheckinNavMode(query = {}) {
  const rawMode = Array.isArray(query.navMode) ? query.navMode[0] : query.navMode;
  const normalizedMode = String(rawMode || '').trim().toLowerCase();

  if (normalizedMode === CHECKIN_NAV_MODE.JLS) {
    return CHECKIN_NAV_MODE.JLS;
  }

  if (normalizedMode === CHECKIN_NAV_MODE.NONE) {
    return CHECKIN_NAV_MODE.NONE;
  }

  return CHECKIN_NAV_MODE.LEGACY;
}

export function getCheckinMapHeight({
  isMiniProgramWebView = false,
  navMode = CHECKIN_NAV_MODE.LEGACY,
  navHeight = NAV_HEIGHT,
} = {}) {
  if (!isMiniProgramWebView || navMode === CHECKIN_NAV_MODE.NONE) {
    return '100vh';
  }

  return `calc(100vh - ${navHeight})`;
}

export function resolveCheckinActiveTab(query = {}) {
  const rawTab = Array.isArray(query.activeTab) ? query.activeTab[0] : query.activeTab;
  const normalizedTab = String(rawTab || '').trim().toLowerCase();

  if (normalizedTab === CHECKIN_ACTIVE_TAB.HOME) {
    return CHECKIN_ACTIVE_TAB.HOME;
  }

  if (normalizedTab === CHECKIN_ACTIVE_TAB.MESSAGE) {
    return CHECKIN_ACTIVE_TAB.MESSAGE;
  }

  if (normalizedTab === CHECKIN_ACTIVE_TAB.MINE) {
    return CHECKIN_ACTIVE_TAB.MINE;
  }

  return '';
}