Skip to main content

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/adminTableコンポーネントの使用をお勧めします。

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';
✏️ Note

プロパティは異なります。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} />
));
};

これはデザインシステムのエイリアスで、react-router-domasプロップを使用していました。そこからコンポーネントをインポートするべきです:

// 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-domasプロップを使用していました。そこからコンポーネントをインポートするべきです:

// 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';
✏️ Note

一部のプロパティが変更されました。詳細は、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リポジトリに問題を開いてください。