0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-04-07 23:01:25 -05:00

chore(console): update documentation links ()

This commit is contained in:
Charles Zhao 2024-02-06 11:22:27 +08:00 committed by GitHub
parent f3c6028e00
commit de46b3d3f4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 28 additions and 14 deletions
packages/console/src
consts
pages
ApplicationDetails/ApplicationDetailsContent
Branding
Permissions
ProtectedAppSettings
index.tsx
Applications/components/ProtectedAppCard

View file

@ -15,9 +15,9 @@ export const pricingLink = 'https://logto.io/pricing';
export const newPlansBlogLink = 'https://blog.logto.io/logto-pricing-v2';
/** Docs link */
export const envTagsFeatureLink = '/docs/recipes/tenant-type';
export const logtoThirdPartyGuideLink = 'https://docs.logto.io/docs/recipes/logto-as-idp';
export const envTagsFeatureLink = '/docs/recipes/tenant-type/';
export const protectedAppLink = '/docs/recipes/protected-app/';
export const logtoThirdPartyGuideLink = '/docs/recipes/logto-as-idp/';
export const logtoThirdPartyAppPermissionsLink =
'https://docs.logto.io/docs/recipes/logto-as-idp/permissions-management/';
export const logtoThirdPartyAppBrandingLink =
'https://docs.logto.io/docs/recipes/logto-as-idp/branding-customization/';
'/docs/recipes/logto-as-idp/permissions-management/';
export const logtoThirdPartyAppBrandingLink = '/docs/recipes/logto-as-idp/branding-customization/';

View file

@ -12,6 +12,7 @@ import { logtoThirdPartyAppBrandingLink } from '@/consts';
import FormField from '@/ds-components/FormField';
import TextInput from '@/ds-components/TextInput';
import useApi from '@/hooks/use-api';
import useDocumentationUrl from '@/hooks/use-documentation-url';
import useUserAssetsService from '@/hooks/use-user-assets-service';
import { trySubmitSafe } from '@/utils/form';
import { uriValidator } from '@/utils/validator';
@ -28,6 +29,7 @@ type Props = {
function Branding({ application, isActive }: Props) {
const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' });
const { getDocumentationUrl } = useDocumentationUrl();
const formMethods = useForm<ApplicationSignInExperience>({
defaultValues: {
@ -109,7 +111,7 @@ function Branding({ application, isActive }: Props) {
title="application_details.branding.name"
description="application_details.branding.description"
learnMoreLink={{
href: logtoThirdPartyAppBrandingLink,
href: getDocumentationUrl(logtoThirdPartyAppBrandingLink),
targetBlank: 'noopener',
}}
>

View file

@ -14,6 +14,7 @@ import TemplateTable from '@/components/TemplateTable';
import { logtoThirdPartyAppPermissionsLink } from '@/consts';
import Tag from '@/ds-components/Tag';
import { type RequestError } from '@/hooks/use-api';
import useDocumentationUrl from '@/hooks/use-documentation-url';
import ApplicationScopesAssignmentModal from './ApplicationScopesAssignmentModal';
import ApplicationScopesManagementModal, {
@ -28,6 +29,7 @@ type Props = {
function Permissions({ application }: Props) {
const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' });
const { getDocumentationUrl } = useDocumentationUrl();
const [isAssignScopesModalOpen, setIsAssignScopesModalOpen] = useState(false);
const [editScopeModalData, setEditScopeModalData] = useState<EditableScopeData>();
@ -47,7 +49,7 @@ function Permissions({ application }: Props) {
title="application_details.permissions.name"
description="application_details.permissions.description"
learnMoreLink={{
href: logtoThirdPartyAppPermissionsLink,
href: getDocumentationUrl(logtoThirdPartyAppPermissionsLink),
targetBlank: 'noopener',
}}
>

View file

@ -253,9 +253,8 @@ function ProtectedAppSettings({ data }: Props) {
components={{
a: (
<TextLink
// TODO: @charles please update the doc link
href={getDocumentationUrl(
'/docs/recipes/protect-your-api/#validate-the-api-requests-authorization-token'
'/docs/recipes/protected-app/#protect-your-origin-server'
)}
targetBlank="noopener"
/>

View file

@ -16,11 +16,12 @@ import DetailsForm from '@/components/DetailsForm';
import DetailsPageHeader from '@/components/DetailsPage/DetailsPageHeader';
import Drawer from '@/components/Drawer';
import UnsavedChangesAlertModal from '@/components/UnsavedChangesAlertModal';
import { ApplicationDetailsTabs, logtoThirdPartyGuideLink } from '@/consts';
import { ApplicationDetailsTabs, logtoThirdPartyGuideLink, protectedAppLink } from '@/consts';
import DeleteConfirmModal from '@/ds-components/DeleteConfirmModal';
import TabNav, { TabNavItem } from '@/ds-components/TabNav';
import TabWrapper from '@/ds-components/TabWrapper';
import useApi from '@/hooks/use-api';
import useDocumentationUrl from '@/hooks/use-documentation-url';
import useTenantPathname from '@/hooks/use-tenant-pathname';
import { applicationTypeI18nKey } from '@/types/applications';
import { trySubmitSafe } from '@/utils/form';
@ -46,6 +47,7 @@ function ApplicationDetailsContent({ data, oidcConfig, onApplicationUpdated }: P
const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' });
const { tab } = useParams();
const { navigate } = useTenantPathname();
const { getDocumentationUrl } = useDocumentationUrl();
const formMethods = useForm<ApplicationForm>({
defaultValues: applicationFormDataParser.fromResponse(data),
@ -115,7 +117,12 @@ function ApplicationDetailsContent({ data, oidcConfig, onApplicationUpdated }: P
onClick: () => {
// Open IdP docs link in new tab if it's a third party app
if (data.isThirdParty) {
window.open(logtoThirdPartyGuideLink, '_blank');
window.open(getDocumentationUrl(logtoThirdPartyGuideLink), '_blank');
return;
}
// Open protected app docs link in new tab
if (data.type === ApplicationType.Protected) {
window.open(getDocumentationUrl(protectedAppLink), '_blank');
return;
}

View file

@ -32,7 +32,7 @@ function ProtectedAppCard({
onCreateSuccess,
}: Props) {
const { t } = useTranslation(undefined, { keyPrefix: 'admin_console.protected_app' });
const { documentationSiteUrl } = useDocumentationUrl();
const { getDocumentationUrl } = useDocumentationUrl();
const [showCreateModal, setShowCreateModal] = useState<boolean>(false);
const theme = useTheme();
const Icon = theme === Theme.Light ? ProtectedAppIcon : ProtectedAppDarkIcon;
@ -53,8 +53,12 @@ function ProtectedAppCard({
<div className={styles.description}>
<Trans
components={{
// TODO: @charles Update documentation URL when it's ready
a: <TextLink href={documentationSiteUrl} targetBlank="noopener" />,
a: (
<TextLink
href={getDocumentationUrl('/docs/recipes/protected-app/')}
targetBlank="noopener"
/>
),
}}
>
{t('description')}