Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup task list and re-organize file structure #38271

Merged
merged 7 commits into from May 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -43,7 +43,7 @@ import { getUnapprovedReviews } from '../homescreen/activity-panel/reviews/utils
import { ABBREVIATED_NOTIFICATION_SLOT_NAME } from './panels/inbox/abbreviated-notifications-panel';
import { getAdminSetting } from '~/utils/admin-settings';
import { getUrlParams } from '~/utils';
import { useActiveSetupTasklist } from '~/tasks';
import { useActiveSetupTasklist } from '~/task-lists';
import { getSegmentsFromPath } from '~/utils/url-helpers';
import { FeedbackIcon } from '~/products/images/feedback-icon';
import { ProductFeedbackTour } from '~/guided-tours/add-product-feedback-tour';
Expand Down
@@ -1,7 +1,7 @@
/**
* Internal dependencies
*/
import { Tasks } from '~/tasks';
import { TaskLists } from '~/task-lists';

type QueryTypeProps = {
query: {
Expand All @@ -12,7 +12,7 @@ type QueryTypeProps = {
export const SetupTasksPanel = ( { query }: QueryTypeProps ) => {
return (
<div className="woocommerce-setup-panel">
<Tasks query={ query } />
<TaskLists query={ query } />
</div>
);
};
Expand Down
2 changes: 1 addition & 1 deletion plugins/woocommerce-admin/client/header/index.js
Expand Up @@ -20,7 +20,7 @@ import { Text, useSlot } from '@woocommerce/experimental';
*/
import './style.scss';
import useIsScrolled from '../hooks/useIsScrolled';
import { TasksReminderBar, useActiveSetupTasklist } from '../tasks';
import { TasksReminderBar, useActiveSetupTasklist } from '../task-lists';

export const PAGE_TITLE_FILTER = 'woocommerce_admin_header_page_title';

Expand Down
19 changes: 12 additions & 7 deletions plugins/woocommerce-admin/client/homescreen/layout.js
Expand Up @@ -30,7 +30,11 @@ import InboxPanel from '../inbox-panel';
import { IntroModal as NavigationIntroModal } from '../navigation/components/intro-modal';
import StatsOverview from './stats-overview';
import { StoreManagementLinks } from '../store-management-links';
import { TasksPlaceholder, useActiveSetupTasklist } from '../tasks';
import {
TasksPlaceholder,
useActiveSetupTasklist,
ProgressTitle,
} from '../task-lists';
import {
WELCOME_MODAL_DISMISSED_OPTION_NAME,
WELCOME_FROM_CALYPSO_MODAL_DISMISSED_OPTION_NAME,
Expand All @@ -41,14 +45,15 @@ import { MobileAppModal } from './mobile-app-modal';
import './style.scss';
import '../dashboard/style.scss';
import { getAdminSetting } from '~/utils/admin-settings';
import { ProgressTitle } from '../task-lists';
import { WooHomescreenHeaderBanner } from './header-banner-slot';
import { WooHomescreenWCPayFeature } from './wcpay-feature-slot';

const Tasks = lazy( () =>
import( /* webpackChunkName: "tasks" */ '../tasks' ).then( ( module ) => ( {
default: module.Tasks,
} ) )
const TaskLists = lazy( () =>
import( /* webpackChunkName: "tasks" */ '../task-lists' ).then(
( module ) => ( {
default: module.TaskLists,
} )
)
);

export const Layout = ( {
Expand Down Expand Up @@ -127,7 +132,7 @@ export const Layout = ( {
<ProgressTitle taskListId={ activeSetupTaskList } />
</>
) }
<Tasks query={ query } />
<TaskLists query={ query } />
</Suspense>
);
};
Expand Down
2 changes: 1 addition & 1 deletion plugins/woocommerce-admin/client/layout/index.js
Expand Up @@ -55,7 +55,7 @@ const StoreAlerts = lazy( () =>

const WCPayUsageModal = lazy( () =>
import(
/* webpackChunkName: "wcpay-usage-modal" */ '../tasks/fills/PaymentGatewaySuggestions/components/WCPay/UsageModal'
/* webpackChunkName: "wcpay-usage-modal" */ '../task-lists/fills/PaymentGatewaySuggestions/components/WCPay/UsageModal'
)
);

Expand Down
Expand Up @@ -9,7 +9,7 @@ import { recordEvent } from '@woocommerce/tracks';
* Internal dependencies
*/
import PaymentRecommendations from '../payment-recommendations';
import { isWCPaySupported } from '../../tasks/fills/PaymentGatewaySuggestions/components/WCPay';
import { isWCPaySupported } from '../../task-lists/fills/PaymentGatewaySuggestions/components/WCPay';
import { createNoticesFromResponse } from '~/lib/notices';

jest.mock( '@woocommerce/tracks', () => ( { recordEvent: jest.fn() } ) );
Expand Down Expand Up @@ -44,7 +44,7 @@ jest.mock( '@woocommerce/components', () => ( {
),
} ) );
jest.mock(
'../../tasks/fills/PaymentGatewaySuggestions/components/WCPay',
'../../task-lists/fills/PaymentGatewaySuggestions/components/WCPay',
() => ( {
isWCPaySupported: jest.fn(),
} )
Expand Down
Expand Up @@ -9,7 +9,7 @@ import { getVisibleTasks, ONBOARDING_STORE_NAME } from '@woocommerce/data';
* Internal dependencies
*/
import './progress-header.scss';
import { TaskListMenu } from '~/tasks/task-list-menu';
import { TaskListMenu } from '~/task-lists/components/task-list-menu';

export type DefaultProgressHeaderProps = {
taskListId: string;
Expand Down
Expand Up @@ -21,14 +21,13 @@ import { useLayoutContext } from '@woocommerce/admin-layout';
import { TaskListItem } from './task-list-item';
import { TaskListMenu } from './task-list-menu';
import './task-list.scss';
import { ProgressHeader } from '~/task-lists/progress-header';
import { ProgressHeader } from '~/task-lists/components/progress-header';

export type TaskListProps = TaskListType & {
query: {
task?: string;
};
eventName?: string;
twoColumns?: boolean;
keepCompletedTaskList?: 'yes' | 'no';
cesHeader?: boolean;
};
Expand Down
Expand Up @@ -6,7 +6,7 @@ import { Extension } from '@woocommerce/data';
/**
* Internal dependencies
*/
import { transformExtensionToPlugin, getMarketingExtensionLists } from '../';
import { transformExtensionToPlugin, getMarketingExtensionLists } from '..';

const basicPlugins: Extension[] = [
{
Expand Down
Expand Up @@ -6,7 +6,7 @@ import { render } from '@testing-library/react';
/**
* Internal dependencies
*/
import { Setup } from '../';
import { Setup } from '..';
import { enqueueScript } from '~/utils/enqueue-script';

jest.mock( '@woocommerce/components', () => {
Expand Down
Expand Up @@ -11,7 +11,7 @@ import { useSelect, useDispatch } from '@wordpress/data';
*/
import { getCountryCode } from '~/dashboard/utils';
import { hasCompleteAddress } from '../../tax/utils';
import { default as StoreLocationForm } from '~/tasks/fills/steps/location';
import { default as StoreLocationForm } from '~/task-lists/fills/steps/location';

export const StoreLocation: React.FC< {
nextStep: () => void;
Expand Down
Expand Up @@ -9,6 +9,7 @@ import './appearance';
import './tax';
import './woocommerce-payments';
import './purchase';
import './deprecated-tasks';

const possiblyImportProductTask = async () => {
if ( isImportProduct() ) {
Expand Down
Expand Up @@ -16,7 +16,7 @@ import {
default as StoreLocationForm,
FormValues,
defaultValidate,
} from '~/tasks/fills/steps/location';
} from '~/task-lists/fills/steps/location';

const validateLocationForm = ( values: FormValues ) => {
const errors = defaultValidate( values );
Expand Down
10 changes: 9 additions & 1 deletion plugins/woocommerce-admin/client/task-lists/index.ts
@@ -1,2 +1,10 @@
export * from './progress-header';
/**
* Internal dependencies
*/
import './fills';

export * from './task-lists';
export * from './reminder-bar';
export * from './progress-title';
export * from './components/placeholder';
export * from './hooks/useActiveSetupList';
Expand Up @@ -8,6 +8,10 @@ const DismissModal = ( {
showDismissModal,
setShowDismissModal,
hideTasks,
}: {
showDismissModal: boolean;
setShowDismissModal: ( show: boolean ) => void;
hideTasks: ( task: string ) => void;
} ) => {
const closeModal = () => setShowDismissModal( false );
const title = __( 'Hide store setup tasks', 'woocommerce' );
Expand Down
Expand Up @@ -8,7 +8,7 @@ import { __ } from '@wordpress/i18n';
* Internal dependencies
*/
import TimerImage from './timer.svg';
import { WC_ASSET_URL } from '../../utils/admin-settings';
import { WC_ASSET_URL } from '../../../../utils/admin-settings';

const AppearanceHeader = ( { task, goToTask } ) => {
return (
Expand Down
@@ -0,0 +1,24 @@
/**
* Internal dependencies
*/
import StoreDetailsHeader from './store-details';
import TaxHeader from './tax';
import MarketingHeader from './marketing';
import AppearanceHeader from './appearance';
import ShippingHeader from './shipping';
import ProductsHeader from './products';
import PurchaseHeader from './purchase';
import PaymentsHeader from './payments';
import WoocommercePaymentsHeader from './woocommerce-payments';

export const taskHeaders: Record< string, React.ElementType > = {
store_details: StoreDetailsHeader,
tax: TaxHeader,
shipping: ShippingHeader,
marketing: MarketingHeader,
appearance: AppearanceHeader,
payments: PaymentsHeader,
products: ProductsHeader,
purchase: PurchaseHeader,
'woocommerce-payments': WoocommercePaymentsHeader,
};
Expand Up @@ -8,7 +8,7 @@ import { __ } from '@wordpress/i18n';
* Internal dependencies
*/
import TimerImage from './timer.svg';
import { WC_ASSET_URL } from '../../utils/admin-settings';
import { WC_ASSET_URL } from '../../../../utils/admin-settings';

const MarketingHeader = ( { task, goToTask } ) => {
return (
Expand Down
Expand Up @@ -8,7 +8,7 @@ import { __ } from '@wordpress/i18n';
* Internal dependencies
*/
import TimerImage from './timer.svg';
import { WC_ASSET_URL } from '../../utils/admin-settings';
import { WC_ASSET_URL } from '../../../../utils/admin-settings';

const PaymentsHeader = ( { task, goToTask } ) => {
return (
Expand Down
Expand Up @@ -8,7 +8,7 @@ import { __ } from '@wordpress/i18n';
* Internal dependencies
*/
import TimerImage from './timer.svg';
import { WC_ASSET_URL } from '../../utils/admin-settings';
import { WC_ASSET_URL } from '../../../../utils/admin-settings';

const ProductsHeader = ( { task, goToTask } ) => {
return (
Expand Down
Expand Up @@ -11,7 +11,7 @@ import { recordEvent } from '@woocommerce/tracks';
*/
import CartModal from '~/dashboard/components/cart-modal';
import TimerImage from './timer.svg';
import { WC_ASSET_URL } from '../../utils/admin-settings';
import { WC_ASSET_URL } from '../../../../utils/admin-settings';

const PurchaseHeader = ( { task } ) => {
const [ cartModalOpen, setCartModalOpen ] = useState( false );
Expand Down
Expand Up @@ -8,7 +8,7 @@ import { __ } from '@wordpress/i18n';
* Internal dependencies
*/
import TimerImage from './timer.svg';
import { WC_ASSET_URL } from '../../utils/admin-settings';
import { WC_ASSET_URL } from '../../../../utils/admin-settings';

const ShippingHeader = ( { task, goToTask } ) => {
return (
Expand Down
Expand Up @@ -8,7 +8,7 @@ import { __ } from '@wordpress/i18n';
* Internal dependencies
*/
import TimerImage from './timer.svg';
import { WC_ASSET_URL } from '../../utils/admin-settings';
import { WC_ASSET_URL } from '../../../../utils/admin-settings';

const StoreDetailsHeader = ( { task, goToTask } ) => {
return (
Expand Down
Expand Up @@ -8,7 +8,7 @@ import { __ } from '@wordpress/i18n';
* Internal dependencies
*/
import TimerImage from './timer.svg';
import { WC_ASSET_URL } from '../../utils/admin-settings';
import { WC_ASSET_URL } from '../../../../utils/admin-settings';

const TaxHeader = ( { task, goToTask } ) => {
return (
Expand Down
Expand Up @@ -14,7 +14,7 @@ import interpolateComponents from '@automattic/interpolate-components';
* Internal dependencies
*/
import TimerImage from './timer.svg';
import { WC_ASSET_URL } from '../../utils/admin-settings';
import { WC_ASSET_URL } from '~/utils/admin-settings';

const connect = ( createNotice, setIsBusy ) => {
const errorMessage = __(
Expand Down
Expand Up @@ -21,8 +21,8 @@ import { __ } from '@wordpress/i18n';
/**
* Internal dependencies
*/
import './completed-header.scss';
import HeaderImage from './completed-celebration-header.svg';
import './task-list-completed-header.scss';
import HeaderImage from '../assets/completed-celebration-header.svg';

type TaskListCompletedHeaderProps = {
hideTasks: () => void;
Expand Down Expand Up @@ -149,7 +149,7 @@ export const TaskListCompletedHeader: React.FC<
<>
<div
className={ classnames(
'woocommerce-task-dashboard__container two-column-experiment'
'woocommerce-task-dashboard__container setup-task-list'
) }
>
<Card
Expand Down
Expand Up @@ -8,16 +8,20 @@ import { __ } from '@wordpress/i18n';
/**
* Internal dependencies
*/
import '../tasks/task-list.scss';
import HeaderImage from './completed.svg';
import HeaderImage from '../assets/task-list-completed.svg';

export const TaskListCompleted = ( { twoColumns, hideTasks, keepTasks } ) => {
export const TaskListCompleted = ( {
hideTasks,
keepTasks,
}: {
hideTasks: () => void;
keepTasks: () => void;
} ) => {
return (
<>
<div
className={ classnames(
'woocommerce-task-dashboard__container two-column-experiment',
{ 'two-columns': twoColumns !== false }
'woocommerce-task-dashboard__container setup-task-list'
) }
>
<Card
Expand Down
Expand Up @@ -18,7 +18,7 @@ export type TaskListItemProps = {
trackClick: () => void;
};

export const TaskListItemTwoColumn: React.FC< TaskListItemProps > = ( {
export const TaskListItem: React.FC< TaskListItemProps > = ( {
task,
activeTaskId,
taskIndex,
Expand Down
Expand Up @@ -6,7 +6,6 @@ import classnames from 'classnames';
/**
* Internal dependencies
*/
import './style.scss';

type TasksPlaceholderProps = {
numTasks?: number;
Expand All @@ -16,15 +15,16 @@ type TasksPlaceholderProps = {
};
};

const TaskListPlaceholder: React.FC< TasksPlaceholderProps > = ( props ) => {
const { numTasks = 5, twoColumns = false } = props;
export const TaskListPlaceholder: React.FC< TasksPlaceholderProps > = (
props
) => {
const { numTasks = 5 } = props;

return (
<div
className={ classnames( 'woocommerce-task-dashboard__container', {
'two-columns': twoColumns,
'two-column-experiment': true,
} ) }
className={ classnames(
'woocommerce-task-dashboard__container setup-task-list'
) }
>
<div className="components-card is-size-large woocommerce-task-card woocommerce-homescreen-card is-loading">
<div className="components-card__header is-size-medium">
Expand Down
@@ -0,0 +1,2 @@
export * from './setup-task-list';
export * from './components/task-list-placeholder';