import { Card, Divider, message, Switch, Typography } from 'antd'; import React from 'react'; import styled from 'styled-components'; import { useUpdateUserSettingMutation } from '../../graphql/me.generated'; import { UserSetting } from '../../types.generated'; import analytics, { EventType } from '../analytics'; import { useUserContext } from '../context/useUserContext'; import { ANTD_GRAY } from '../entity/shared/constants'; import { useIsThemeV2, useIsThemeV2EnabledForUser, useIsThemeV2Toggleable } from '../useIsThemeV2'; const Page = styled.div` width: 100%; display: flex; justify-content: center; `; const SourceContainer = styled.div` width: 80%; padding-top: 20px; padding-right: 40px; padding-left: 40px; `; const TokensContainer = styled.div` padding-top: 0px; `; const TokensHeaderContainer = styled.div` && { padding-left: 0px; } `; const TokensTitle = styled(Typography.Title)` && { margin-bottom: 8px; } `; const UserSettingRow = styled.div` display: flex; justify-content: space-between; `; const DescriptionText = styled(Typography.Text)` color: ${ANTD_GRAY[7]}; font-size: 11px; `; const SettingText = styled(Typography.Text)` font-size: 14px; `; export const Preferences = () => { // Current User Urn const { user, refetchUser } = useUserContext(); const isThemeV2 = useIsThemeV2(); const [isThemeV2Toggleable] = useIsThemeV2Toggleable(); const [isThemeV2EnabledForUser] = useIsThemeV2EnabledForUser(); const showSimplifiedHomepage = !!user?.settings?.appearance?.showSimplifiedHomepage; const [updateUserSettingMutation] = useUpdateUserSettingMutation(); const showSimplifiedHomepageSetting = !isThemeV2; return ( Appearance Manage your appearance settings. {showSimplifiedHomepageSetting && ( Show simplified homepage
Limits entity browse cards on homepage to Domains, Charts, Datasets, Dashboards and Glossary Terms
{ await updateUserSettingMutation({ variables: { input: { name: UserSetting.ShowSimplifiedHomepage, value: !showSimplifiedHomepage, }, }, }); analytics.event({ type: showSimplifiedHomepage ? EventType.ShowStandardHomepageEvent : EventType.ShowSimplifiedHomepageEvent, }); message.success({ content: 'Setting updated!', duration: 2 }); refetchUser?.(); }} />
)} {isThemeV2Toggleable && ( <> Try New User Experience
Enable an early preview of the new DataHub UX - a complete makeover for your app with a sleek new design and advanced features. Flip the switch and refresh your browser to try it out!
{ await updateUserSettingMutation({ variables: { input: { name: UserSetting.ShowThemeV2, value: !isThemeV2EnabledForUser, }, }, }); // clicking this button toggles, so event is whatever is opposite to what isThemeV2EnabledForUser currently is analytics.event({ type: isThemeV2EnabledForUser ? EventType.RevertV2ThemeEvent : EventType.ShowV2ThemeEvent, }); message.success({ content: 'Setting updated!', duration: 2 }); refetchUser?.(); }} />
)} {!showSimplifiedHomepageSetting && !isThemeV2Toggleable && (
No appearance settings found.
)}
); };