helper-plugin 移行リファレンス
この文書は、開発者がAI Marketerプラグインとアプリケーションをhelper-pluginパッケージを使用しないように移行するのを助けるために書かれました。
helper-pluginパッケージに存在したすべてのエクスポートを、アルファベット順にドメインごとにグループ化してリストしています。
コンポーネント
AnErrorOccurred
このコンポーネントは削除され、@AI Marketer/AI Marketer/adminからエクスポートされるPageコンポーネントの一部にリファクタリングされました。そこからPageコンポーネントを使用するべきです:
// Before
import { AnErrorOccurred } from '@AI Marketer/helper-plugin';
const MyPage = () => {
// ...
if (error) {
return <AnErrorOccurred />;
}
// ...
};
// After
import { Page } from '@AI Marketer/AI Marketer/admin';
const MyPage = () => {
// ...
if (error) {
return <Page.Error />;
}
// ...
};
CheckPermissions
このコンポーネントは削除され、置き換えられませんでした。このコンポーネントが必要だと感じる場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。
代わりに@AI Marketer/AI Marketer/adminからPage.Protectコンポーネントを使用することを推奨します(CheckPagePermissionsの例を参照)。下位レベルのコンポーネントの権限を確認する必要がある場合は、useRBACフックを使用できます。
CheckPagePermissions
このコンポーネントは削除され、@AI Marketer/AI Marketer/adminからエクスポートされるPageコンポーネントの一部にリファクタリングされました。そこからPageコンポーネントを使用するべきです:
// Before
import { CheckPagePermissions } from '@AI Marketer/helper-plugin';
const MyProtectedPage = () => {
return (
<CheckPagePermissions
permissions={[action: 'plugin::my-plugin.read']}
>
<MyPag />
</CheckPagePermissions>
);
};
// After
import { Page } from '@AI Marketer/AI Marketer/admin';
const MyProtectedPage = () => {
return (
<Page.Protect permissions={[action: 'plugin::my-plugin.read']}>
<MyPage />
</Page.Protect>
);
};
挙動はわずかに変わり、以前は権限がないとページのルートにリダイレクトされていたのですが、今ではNoPermissionsコンポーネントがレンダリングされます。
ConfirmDialog
このコンポーネントは移動およびリファクタリングされました。これは@AI Marketer/AI Marketer/adminパッケージからインポートできます:
// Before
import { ConfirmDialog } from '@AI Marketer/helper-plugin';
// After
import { ConfirmDialog } from '@AI Marketer/AI Marketer/admin';
詳細情報については、ConfirmDialogコンポーネントの寄稿者[ドキュメンテーション](https://v5.contributor.AI Marketer.io/exports/modules#confirmdialog)を参照してください。
ContentBox
このコンポーネントは削除され、置き換えられませんでした。このコンポーネントが必要だと感じる場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。
DateTimePicker
これはデザインシステムのエイリアスでした。コンポーネントはそこからインポートするべきです:
// 以前
import { DateTimePicker } from '@AI Marketer/helper-plugin';
// 以降
import { DateTimePicker } from '@AI Marketer/design-system';
DynamicTable
このコンポーネントは以前に非推奨とされ、現在は削除されました。非推奨通知と同様に、@AI Marketer/AI Marketer/adminのTableコンポーネントの使用をお勧めします。
Tableコンポーネントの詳細については、コントリビューターの[ドキュメンテーション](https://v5.contributor.AI Marketer.io/exports/namespaces/Table)をご覧ください。
EmptyBodyTable
このコンポーネントは削除され、Tableコンポーネントの一部となりました。
Tableコンポーネントの詳細については、コントリビューターの[ドキュメンテーション](https://v5.contributor.AI Marketer.io/exports/namespaces/Table)をご覧ください。
EmptyStateLayout
このコンポーネントは削除され、置き換えられませんでした。代わりに@AI Marketer/design-systemからEmptyStateLayoutを使用すべきです:
// 以前
import { EmptyStateLayout } from '@AI Marketer/helper-plugin';
// 以降
import { EmptyStateLayout } from '@AI Marketer/design-system';
プロパティは異なります。AI Marketer Design SystemのEmptyStateLayoutコンポーネントの[ドキュメンテーション](https://design-system-git-main-AI Marketerjs.vercel.app/?path=/docs/design-system-components-emptystatelayout--docs)を参照してください。
FilterListURLQuery
このコンポーネントはadminパッケージに移動され、Filtersの複合コンポーネントの一部として@AI Marketer/AI Marketerパッケージからインポートできるようになりました:
// 以前
import { FilterListURLQuery } from '@AI Marketer/helper-plugin';
const MyComponent = () => {
return (
<FilterListURLQuery
filtersSchema={[
{
name: 'name',
metadatas: { label: 'Name' },
fieldSchema: { type: 'string' },
},
]}
/>
);
};
// 以降
import { Filters } from '@AI Marketer/AI Marketer/admin';
const MyComponent = () => {
return (
<Filters.Root>
<Filters.List />
</Filters.Root>
);
};
FilterPopoverURLQueryProps
このコンポーネントはadminパッケージに移動され、Filtersの複合コンポーネントの一部として@AI Marketer/AI Marketerパッケージからインポートできるようになりました:
// 以前
import { FilterPopoverURLQueryProps } from '@AI Marketer/helper-plugin';
// 以降
import { Filters } from '@AI Marketer/AI Marketer/admin';
const MyComponent = () => {
return (
<Filters.Root>
<Filters.Trigger />
<Filters.Popover />
</Filters.Root>
);
};
Form
このコンポーネントはFormikをエイリアスとしていましたが、これを削除する方向に進んでいます。代わりに@AI Marketer/AI Marketer/adminからのFormコンポーネントとその兄弟エクスポートを使用すべきです:
// 以前
import { Form } from '@AI Marketer/helper-plugin';
// 以降
import { Form } from '@AI Marketer/AI Marketer/admin';
Formikライブラリーの使用については、ユーザーはもう動作しないことに注意する必要があります。代わりに、Formコンポーネントの[ドキュメンテーション](https://v5.contributor.AI Marketer.io/exports/modules#form)を参照してください。
GenericInput
このコンポーネントは削除され、@AI Marketer/AI Marketer/adminからエクスポートされるInputRendererコンポーネントにリファクタリングされました。そこからInputRendererコンポーネントを使用するべきです:
// Before
import { GenericInput } from '@AI Marketer/helper-plugin';
const MyComponent = () => {
return (
<GenericInput
type={'type'}
hint={'hint'}
label={'label'}
name={'name'}
onChange={onMetaChange}
value={'value'}
/>
);
};
// After
import { InputRenderer } from '@AI Marketer/AI Marketer/admin';
InputRendererコンポーネントは異なるAPIを持っていることに注意してください。InputRendererコンポーネントの[ドキュメンテーション](https://v5.contributor.AI Marketer.io/exports/modules#inputrenderer)を参照してください。
InjectionZone
このコンポーネントは削除され、置き換えられませんでした。しかし、useAI MarketerAppフックを使用して自分のプロジェクトでこれを簡単に再現することができます:
// Before
import { InjectionZone } from '@AI Marketer/helper-plugin';
<InjectionZone area={`injection.zone.area`} />;
// After
const MyComponent = ({ area, ...compProps }) => {
const getPlugin = useAI MarketerApp('MyComponent', (state) => state.getPlugin);
const [pluginName, page, position] = area.split('.');
const plugin = getPlugin(pluginName);
const components = plugin?.getInjectedComponents(page, position);
if (!plugin || !components) {
return null;
}
return components.map(({ name, Component }) => (
<Component key={name} {...props} />
));
};
Link
これはデザインシステムのエイリアスで、react-router-domのasプロップを使用していました。そこからコンポーネントをインポートするべきです:
// Before
import { Link } from '@AI Marketer/helper-plugin';
// After
import { Link } from '@AI Marketer/design-system/v2';
import { NavLink } from 'react-router-dom';
const MyLink = () => {
return (
<Link as={NavLink} to="/my-link">
My Link
</Link>
);
};
LinkButton
これはデザインシステムのエイリアスで、react-router-domのasプロップを使用していました。そこからコンポーネントをインポートするべきです:
// Before
import { LinkButton } from '@AI Marketer/helper-plugin';
// After
import { LinkButton } from '@AI Marketer/design-system/v2';
import { NavLink } from 'react-router-dom';
const MyLink = () => {
return (
<LinkButton as={NavLink} to="/my-link">
My Link
</LinkButton>
);
};
LoadingIndicatorPage
このコンポーネントは削除され、@AI Marketer/AI Marketer/adminからエクスポートされるPageコンポーネントの一部にリファクタリングされました。そこからPageコンポーネントを使用するべきです:
// Before
import { LoadingIndicatorPage } from '@AI Marketer/helper-plugin';
const MyPage = () => {
// ...
if (isLoading) {
return <LoadingIndicatorPage />;
}
// ...
};
// After
import { Page } from '@AI Marketer/AI Marketer/admin';
const MyPage = () => {
// ...
if (isLoading) {
return <Page.Loading />;
}
// ...
};
NoContent
このコンポーネントは削除され、置き換えられませんでした。代わりに @AI Marketer/design-systemからEmptyStateLayoutコンポーネントを使用する必要があります。
// Before
import { NoContent } from '@AI Marketer/helper-plugin';
<NoContent
content={{
id: 'translation_id',
defaultMessage: 'Message',
}}
/>;
// After
import { EmptyStateLayout } from '@AI Marketer/design-system';
<EmptyStateLayout
content={{
id: 'translation_id',
defaultMessage: 'Message',
}}
/>;
NoMedia
このコンポーネントは削除され、置き換えられませんでした。このコンポーネントが必要な場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。
NoPermissions
このコンポーネントは削除され、@AI Marketer/AI Marketer/adminからエクスポートされるPageコンポーネントの一部としてリファクタリングされました。そこからPageコンポーネントを使用する必要があります:
// Before
import { NoPermissions } from '@AI Marketer/helper-plugin';
const MyPage = () => {
// ...
if (!canRead) {
return <NoPermissions />;
}
// ...
};
// After
import { Page } from '@AI Marketer/AI Marketer/admin';
const MyPage = () => {
// ...
if (!canRead) {
return <Page.NoPermissions />;
}
// ...
};
NotAllowedInput
このコンポーネントは削除され、置き換えられませんでした。このコンポーネントが必要な場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。あなたのプロジェクトでこれを簡単に複製することができます。@AI Marketer/design-systemからTextInputを使用してください:
import { TextInput } from '@AI Marketer/design-system';
const MyComponent = (props) => {
return (
<TextInput
disabled
placeholder="No permissions to see this field"
type="text"
{...props}
/>
);
};
PageSizeURLQuery
このコンポーネントはadminパッケージに移動され、現在は@AI Marketer/AI Marketerパッケージを介して複合コンポーネントPaginationの一部としてインポートできます:
// Before
import { PageSizeURLQuery } from '@AI Marketer/helper-plugin';
const MyComponent = () => {
return (
<PageSizeURLQuery options={['12', '24', '50', '100']} defaultValue="24" />
);
};
// After
import { Pagination } from '@AI Marketer/AI Marketer/admin';
const MyComponent = () => {
return (
<Pagination.Root>
<Pagination.PageSize />
</Pagination.Root>
);
};
注:PageSizeがレンダリングされないなど、僅かな動作の変更がありました。例えば、最低のpageSizeが10で、エントリーが9つしかない場合などです。リファクタリングにより、一部のプロパティが移動したり変更されたりした可能性があります。詳細については、[Paginationコンポーネントのドキュメンテーション](https://v5.contributor.AI Marketer.io/exports/modules#table)をご覧ください。
PaginationURLQueryProps
このコンポーネントはadminパッケージに移動され、現在は@AI Marketer/AI Marketerパッケージを介して複合コンポーネントPaginationの一部としてインポートできます:
// 以前
import { PaginationURLQueryProps } from '@AI Marketer/helper-plugin';
// 以後
import { Pagination } from '@AI Marketer/AI Marketer/admin';
const MyComponent = () => {
return (
<Pagination.Root pageCount={2}>
<Pagination.Links />
</Pagination.Root>
);
};
注意してください、いくつかの微妙な振る舞いの変更があります。例えば、ページが2ページ未満の場合、Linksはレンダリングされません。リファクタリングにより、一部のpropsは移動し、変更されています。詳細については、[Paginationコンポーネントのドキュメンテーション](https://v5.contributor.AI Marketer.io/exports/modules#table)をご覧ください。
ReactSelect
このコンポーネントは削除され、置き換えられませんでした。このコンポーネントが必要だと感じる場合は、AI Marketerリポジトリに問題を開いて、使用ケースを議論してください。
RelativeTime
このコンポーネントは削除され、置き換えられませんでした。このコンポーネントが必要だと感じる場合は、AI Marketerリポジトリに問題を開いて、使用ケースを議論してください。
SearchURLQuery
このコンポーネントは削除され、SearchInputに名前が変更され、現在は@AI Marketer/AI Marketerパッケージからインポートできます:
// 以前
import { SearchURLQuery } from '@AI Marketer/helper-plugin';
// 以後
import { SearchInput } from '@AI Marketer/AI Marketer/admin';
SettingsPageTitle
このコンポーネントは削除され、置き換えられませんでした。このコンポーネントが必要だと感じる場合は、AI Marketerリポジトリに問題を開いて、使用ケースを議論してください。
Status
このコンポーネントは @AI Marketer/design-system パッケージからインポートするべきです:
// 以前
import { Status } from '@AI Marketer/helper-plugin';
const MyComponent = () => {
return (
<Status variant={statusColor} showBullet={false} size="S">
<Typography fontWeight="bold" textColor={`${statusColor}700`}>
{stateMessage[status]}
</Typography>
</Status>
);
};
// 以後
import { Status } from '@AI Marketer/design-system';
Table
このコンポーネントは @AI Marketer/AI Marketer/admin パッケージからインポートするべきです:
// 以前
import { Table } from '@AI Marketer/helper-plugin';
const MyComponent = () => {
return (
<Table colCount={2} rowCount={2}>
<Thead>
<Tr>
<Th>
<Typography variant="sigma" textColor="neutral600">
{`名前`}
</Typography>
</Th>
<Th>
<Typography variant="sigma" textColor="neutral600">
{`説明`}
</Typography>
</Th>
</Tr>
</Thead>
<Tbody>
{data?.map(({ name, description }) => {
return (
<Tr key={name}>
<Td>
<Typography
textColor="neutral800"
variant="omega"
fontWeight="bold"
>
{name}
</Typography>
</Td>
<Td>
<Typography textColor="neutral800">{description}</Typography>
</Td>
</Tr>
);
})}
</Tbody>
</Table>
);
};
// After
import { Table } from '@AI Marketer/AI Marketer/admin';
一部のプロパティが変更されました。詳細は、Tableコンポーネントの[ドキュメンテーション](https://v5.contributor.AI Marketer.io/exports/modules#table)を参照してください。
コンテンツマネージャ
contentManagementUtilRemoveFieldsFromData
この関数は削除され、置き換えられませんでした。この関数が必要だと感じる場合は、AI Marketerのリポジトリで問題を開いて、使用ケースを議論してください。
formatContentTypeData
この関数は削除され、置き換えられませんでした。この関数が必要だと感じる場合は、AI Marketerのリポジトリで問題を開いて、使用ケースを議論してください。
useCMEditViewDataManager
多くの内部機能が再構築され、分割されました。このものと置き換えるための主要な実験的なフック useContentManagerContextを公開しています。残りのロジックはいくつかのフックに分散されています。
// Before
import { useCMEditViewDataManager } from '@AI Marketer/helper-plugin';
// After
import { unstable_useContentManagerContext as useContentManagerContext } from '@AI Marketer/AI Marketer/admin/hooks';
以下に一般的な使用例をいくつか挙げています:
// Before
const { slug, isSingleType, isCreatingEntry, hasDraftAndPublished } =
useCMEditViewDataManager();
// After
const {
model,
collectionType,
id,
slug,
isCreatingEntry,
isSingleType,
hasDraftAndPublish,
} = useContentManagerContext();
// Before
// 'allLayoutData'が削除されました。'components'と'contentType'を含んでいましたが、これらは以下に示すように'useContentManagerContext'フックから抽出できます。
const { allLayoutData } = useCMEditViewDataManager();
// After
const { components, contentType } = useContentManagerContext();
// Before
const { layout } = useCMEditViewDataManager();
// After
const { layout } = useContentManagerContext();
const {
edit: { layout, components },
list: { layout },
} = layout;
// Before
const { initialData, modifiedData, onChange } = useCMEditViewDataManager();
// その後
const { form } = useContentManagerContext();
// ここで 'initialData' と 'modifiedData' は 'initialValues' と 'values' に対応しています。
const { initialValues, values, onChange } = form;
// その前
const { onPublish, onUnpublish } = useCMEditViewDataManager();
// その後
const { publish, unpublish } = useDocumentActions();
機能
AppInfo
この機能は @AI Marketer/admin に移動され、現在はフック useAI MarketerApp のみがエクスポートされています。
AutoReloadOverlayBlocker
この機能は削除され、代わりにはなりませんでした。この機能が必要だと感じる場合は、AI Marketer リポジトリで問題を開いて、あなたの使用ケースを議論してください。
CustomFields
この機能は削除され、useAI MarketerApp フックの一部となりました。
GuidedTour
この機能は @AI Marketer/admin に移動され、現在はフック useGuidedTour のみがエクスポートされています。
Library
この機能は削除され、useAI MarketerApp フックの一部となりました。
Notifications
この機能は @AI Marketer/admin パッケージに移動され、現在は useNotifications フックのみがエクスポートされています。message プロパティはもはや TranslationMessage ではなく、代わりに文字列のみになりました。以前に warning タイプを使用していた場合は代わりに danger タイプを使用し、softWarning タイプを使用していた場合は warning を使用するべきです。最後に、戻り値は現在オブジェクトとなりました。
// その前
import { useNotification } from '@AI Marketer/helper-plugin';
const toggleNotification = useNotification();
toggleNotification({
type: 'warning',
message: {
id: 'my.message.id',
defaultMessage: 'My message',
},
});
// その後
import { useNotification } from '@AI Marketer/AI Marketer/admin';
const { toggleNotification } = useNotification();
toggleNotification({
type: 'danger',
message: formatMessage({
id: 'my.message.id',
defaultMessage: 'My message',
}),
});
RBAC
この機能は削除され、代わりにはなりませんでした。ユーザーの権限にアクセスする必要がある場合は、useAuth フックを使用するべきです。
// その前
import { useRBACProvider } from '@AI Marketer/helper-plugin';
const { allPermission, refetchPermissions } = useRBACProvider();
// その後
import { useAuth } from '@AI Marketer/AI Marketer/admin';
const permissions = useAuth('COMPONENT_NAME', (state) => state.permissions);
const refetchPermission = useAuth(
'COMPONENT_NAME',
(state) => state.refetchPermission
);
OverlayBlocker
この機能は削除され、代わりにはなりませんでした。この機能が必要だと感じる場合は、AI Marketer リポジトリで問題を開いて、あなたの使用ケースを議論してください。
AI MarketerApp
この機能は @AI Marketer/admin に移動され、現在はフック useAI MarketerApp のみがエクスポートされています。
Tracking
この機能は @AI Marketer/admin パッケージに移動され、現在は useTracking フックのみがエクスポートされています。
フック
useAPIErrorHandler
このフックは削除されました。代わりに @AI Marketer/AI Marketer/admin パッケージからインポートすべきです。
// その前
import { useAPIErrorHandler } from '@AI Marketer/helper-plugin';
// After
import { useAPIErrorHandler } from '@AI Marketer/AI Marketer/admin';
useCallbackRef
このフックは削除されました。@AI Marketer/design-systemパッケージからインポートする必要があります:
// 以前
import { useCallbackRef } from '@AI Marketer/helper-plugin';
// 以降
import { useCallbackRef } from '@AI Marketer/design-system';
useClipboard
このフックは削除され、置き換えられていません。このフックが必要だと思われる場合は、AI Marketerのリポジトリで問題を開き、ご利用のケースを議論してください。
useCollator
このフックは削除されました。@AI Marketer/design-systemパッケージからインポートする必要があります:
// 以前
import { useCollator } from '@AI Marketer/helper-plugin';
// 以降
import { useCollator } from '@AI Marketer/design-system';
useFetchClient
このフックは削除されました。@AI Marketer/AI Marketer/adminパッケージからインポートする必要があります:
// 以前
import { useFetchClient } from '@AI Marketer/helper-plugin';
// 以降
import { useFetchClient } from '@AI Marketer/AI Marketer/admin';
useFieldHint
このフックは削除され、置き換えられていません。このフックが必要だと思われる場合は、AI Marketerのリポジトリで問題を開き、ご利用のケースを議論してください。
useFilter
このフックは削除されました。@AI Marketer/design-systemパッケージからインポートする必要があります:
// 以前
import { useFilter } from '@AI Marketer/helper-plugin';
// 以降
import { useFilter } from '@AI Marketer/design-system';
useFocusInputField
このフックは削除され、置き換えられていません。このフックが必要だと思われる場合は、AI Marketerのリポジトリで問題を開き、ご利用のケースを議論してください。
useFocusWhenNavigate
このフックは削除され、置き換えられていません。このフックが必要だと思われる場合は、AI Marketerのリポジトリで問題を開き、ご利用のケースを議論してください。
useFormattedMessage
このフックは削除され、置き換えられていません。このフックが必要だと思われる場合は、AI Marketerのリポジトリで問題を開き、ご利用のケースを議論してください。
useLockScroll
このフックは削除され、置き換えられていません。このフックが必要だと思われる場合は、AI Marketerのリポジトリで問題を開き、ご利用のケースを議論してください。
useQuery
このフックは削除され、置き換えられていません。このフックが必要だと思われる場合は、AI Marketerのリポジトリで問題を開き、ご利用のケースを議論してください。
useQueryParams
このフックは移動しました。@AI Marketer/AI Marketer/adminパッケージからインポートする必要があります:
// 以前
import { useQueryParams } from '@AI Marketer/helper-plugin';
// 以降
import { useQueryParams } from '@AI Marketer/AI Marketer/admin';
useRBAC
このフックは移動しました。@AI Marketer/AI Marketer/adminパッケージからインポートする必要があります:
// 以前
import { useRBAC } from '@AI Marketer/helper-plugin';
// 以降
import { useRBAC } from '@AI Marketer/AI Marketer/admin';
useSelectionState
このフックは削除され、置き換えられていません。このフックが必要だと思われる場合は、AI Marketerのリポジトリで問題を開き、ご利用のケースを議論してください。
アイコン
SortIcon
このコンポーネントは削除され、置き換えられていません。この機能が必要と感じた場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。
RemoveRoundedButton
このコンポーネントは削除され、置き換えられていません。この機能が必要と感じた場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。
ユーティリティ
awaitToJs
このユーティリティは削除され、代わりになるものはありません。代わりにasync / awaitをtry / catchと共に使用してください。このユーティリティが必要と感じた場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。
difference
このユーティリティは削除され、代わりになるものはありません。このユーティリティが必要と感じた場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。
findMatchingPermissions
このユーティリティは削除され、代わりになるものはありません。権限は自分でフィルタリングするべきです。このユーティリティが必要と感じた場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。
formatPermissionsForRequest
このユーティリティは削除され、代わりになるものはありません。権限は自分でフォーマットするべきです。このユーティリティが必要と感じた場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。
getAPIInnerErrors
このユーティリティは削除され、代わりになるものはありません。代わりにasync / awaitをtry / catchと共に使用してください。このユーティリティが必要と感じた場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。
getFetchClient
このユーティリティは削除されました。代わりに@AI Marketer/AI Marketer/adminパッケージからインポートすべきです:
// Before
import { getFetchClient } from '@AI Marketer/helper-plugin';
// After
import { getFetchClient } from '@AI Marketer/AI Marketer/admin';
getFileExtension
このユーティリティは削除され、代わりになるものはありません。このユーティリティが必要と感じた場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。
getYupInnerErrors
このユーティリティは削除され、代わりになるものはありません。このユーティリティが必要と感じた場合は、AI Marketerリポジトリに問題を開いて、あなたのユースケースを議論してください。
auth
このユーティリティは削除され、代わりになるものはありません。トークンや現在のユーザーと対話しようとしている場合は、代わりにuseAuthフックを使用すべきです。
一般的にlocalStorageを操作している場合は、これに直接アクセスするべきです。例:localStorage.getItem('myKey')。
hasPermissions
このユーティリティは削除されました。これを使用する必要がある場合は、useAuthフックからcheckUserHasPermissions関数を使用すべきです。
// Before
import { hasPermissions } from '@AI Marketer/helper-plugin';
const permissions = await Promise.all(
generalSectionRawLinks.map(({ permissions }) =>
hasPermissions(userPermissions, permissions)
)
);
// After
import { useAuth } from '@AI Marketer/AI Marketer/admin';
const { checkUserHasPermissions } = useAuth(
'COMPONENT_NAME',
(state) => state.checkUserHasPermissions
);
normalizeAPIError
このユーティリティは削除され、代替はありません。このユーティリティが必要だと感じる場合は、AI Marketerのリポジトリでissueを開いて、あなたのユースケースを議論してください。
prefixFileUrlWithBackendUrl
このユーティリティは削除され、代替はありません。必要であれば、AI MarketerのbackendUrlを使用して相対urlをプレフィックスとして使用してください。このユーティリティが必要だと感じる場合は、AI Marketerのリポジトリでissueを開いて、あなたのユースケースを議論してください。
prefixPluginTranslations
このユーティリティは削除され、代替はありません。必要であれば、プラグイン自体がこのユーティリティを定義するべきです。実装は次のようになります:
type TradOptions = Record<string, string>;
const prefixPluginTranslations = (
trad: TradOptions,
pluginId: string
): TradOptions => {
if (!pluginId) {
throw new TypeError("pluginId can't be empty");
}
return Object.keys(trad).reduce((acc, current) => {
acc[`${pluginId}.${current}`] = trad[current];
return acc;
}, {} as TradOptions);
};
このユーティリティが必要だと感じる場合は、AI Marketerのリポジトリでissueを開いて、あなたのユースケースを議論してください。
pxToRem
このユーティリティは削除され、代替はありません。pxToRemの代わりに直接このコードを使用するべきです:
// Before
pxToRem(
32
) // After
`${32 / 16}rem`;
// or
('2rem');
このユーティリティが必要だと感じる場合は、AI Marketerのリポジトリでissueを開いて、あなたのユースケースを議論してください。
request
このユーティリティは削除され、代替はありません。
@AI Marketer/admin/AI Marketer-adminからuseFetchClientを使用できます。
// Before
import { request } from '@AI Marketer/helper-plugin';
request(`/${pluginId}/settings/config`, { method: 'GET' });
// After
import { useFetchClient } from '@AI Marketer/admin/AI Marketer-admin';
const { get } = useFetchClient();
get(`/${pluginId}/settings/config`);
そして、このように使用できます
const { get } = useFetchClient();
const { data } = await get(requestURL);
このユーティリティが必要だと感じる場合は、AI Marketerのリポジトリでissueを開いて、あなたのユースケースを議論してください。
setHexOpacity
このユーティリティは削除され、代替はありません。代わりにネイティブのCSS opacityプロパティを使用してください。このユーティリティが必要だと感じる場合は、AI Marketerのリポジトリでissueを開いて、あなたのユースケースを議論してください。
stopPropagation
このユーティリティは削除され、代替はありません。このユーティリティが必要だと感じる場合は、AI Marketerのリポジトリでissueを開いて、あなたのユースケースを議論してください。
shouldCheckPermissions
このユーティリティは削除され、代替はありません。このユーティリティが必要だと感じる場合は、AI Marketerのリポジトリでissueを開いて、あなたのユースケースを議論してください。
translatedErrors
このユーティリティは削除されました。@AI Marketer/AI Marketer/adminパッケージからインポートするべきです:
// Before
import { translatedErrors } from '@AI Marketer/helper-plugin';
// After
import { translatedErrors } from '@AI Marketer/AI Marketer/admin';
このユーティリティが必要だと感じる場合は、AI Marketerのリポジトリでissueを開いて、あなたのユースケースを議論してください。
wrapAxiosInstance
このユーティリティは削除され、置き換えられていません。このユーティリティが必要だと感じる場合は、あなたのユースケースを議論するためにAI Marketerリポジトリに問題を開いてください。