Remove store name, store URL and Store description from dashboard settings (#1989)

* Disable store domain field in cloud, update query to save store name

* Update field label for domain to "Store API URL"

* Remove store name from store settings page

* Skip enitre shopDomainUpdate mutation when running in cloud

* Remove SiteDetailsSettingsCard

* Update snapshots
This commit is contained in:
Jonatan Witoszek 2022-04-25 14:00:06 +02:00 committed by GitHub
parent a93f6aca6f
commit 1cab89f297
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 4 additions and 668 deletions

View file

@ -7565,21 +7565,6 @@
"context": "input helper text",
"string": "Leaving this setting empty will mean that stock wont be reserved"
},
"src_dot_siteSettings_dot_components_dot_SiteDetailsSettingsCard_dot_1008586926": {
"string": "Name of your store is shown on tab in web browser"
},
"src_dot_siteSettings_dot_components_dot_SiteDetailsSettingsCard_dot_1170194728": {
"string": "Store domain"
},
"src_dot_siteSettings_dot_components_dot_SiteDetailsSettingsCard_dot_2286355060": {
"string": "Name of your store"
},
"src_dot_siteSettings_dot_components_dot_SiteDetailsSettingsCard_dot_3868874271": {
"string": "Store description"
},
"src_dot_siteSettings_dot_components_dot_SiteDetailsSettingsCard_dot_529433178": {
"string": "Store description is shown on taskbar after your store name"
},
"src_dot_siteSettings_dot_components_dot_SiteSettingsPage_dot_229184360": {
"context": "section header",
"string": "Store Information"
@ -7600,10 +7585,6 @@
"context": "section title",
"string": "Company Information"
},
"src_dot_siteSettings_dot_components_dot_SiteSettingsPage_dot_sectionDetailsDescription": {
"context": "section description",
"string": "These are general information about your store. They define what is the URL of your store and what is shown in browsers taskbar."
},
"src_dot_somethingWentWrong": {
"string": "Saleor ran into an unexpected problem"
},

View file

@ -14124,7 +14124,7 @@ export type ChannelShippingZonesQueryHookResult = ReturnType<typeof useChannelSh
export type ChannelShippingZonesLazyQueryHookResult = ReturnType<typeof useChannelShippingZonesLazyQuery>;
export type ChannelShippingZonesQueryResult = Apollo.QueryResult<Types.ChannelShippingZonesQuery, Types.ChannelShippingZonesQueryVariables>;
export const ShopSettingsUpdateDocument = gql`
mutation ShopSettingsUpdate($shopDomainInput: SiteDomainInput!, $shopSettingsInput: ShopSettingsInput!, $addressInput: AddressInput, $isCloudInstance: Boolean!) {
mutation ShopSettingsUpdate($shopSettingsInput: ShopSettingsInput!, $addressInput: AddressInput, $isCloudInstance: Boolean!) {
shopSettingsUpdate(input: $shopSettingsInput) {
errors {
...ShopError
@ -14133,17 +14133,6 @@ export const ShopSettingsUpdateDocument = gql`
...Shop
}
}
shopDomainUpdate(input: $shopDomainInput) @skip(if: $isCloudInstance) {
errors {
...ShopError
}
shop {
domain {
host
url
}
}
}
shopAddressUpdate(input: $addressInput) {
errors {
...ShopError
@ -14173,7 +14162,6 @@ export type ShopSettingsUpdateMutationFn = Apollo.MutationFunction<Types.ShopSet
* @example
* const [shopSettingsUpdateMutation, { data, loading, error }] = useShopSettingsUpdateMutation({
* variables: {
* shopDomainInput: // value for 'shopDomainInput'
* shopSettingsInput: // value for 'shopSettingsInput'
* addressInput: // value for 'addressInput'
* isCloudInstance: // value for 'isCloudInstance'

View file

@ -7195,14 +7195,13 @@ export type ChannelShippingZonesQueryVariables = Exact<{
export type ChannelShippingZonesQuery = { __typename: 'Query', shippingZones: { __typename: 'ShippingZoneCountableConnection', edges: Array<{ __typename: 'ShippingZoneCountableEdge', node: { __typename: 'ShippingZone', id: string, name: string } }> } | null };
export type ShopSettingsUpdateMutationVariables = Exact<{
shopDomainInput: SiteDomainInput;
shopSettingsInput: ShopSettingsInput;
addressInput?: InputMaybe<AddressInput>;
isCloudInstance: Scalars['Boolean'];
}>;
export type ShopSettingsUpdateMutation = { __typename: 'Mutation', shopSettingsUpdate: { __typename: 'ShopSettingsUpdate', errors: Array<{ __typename: 'ShopError', code: ShopErrorCode, field: string | null, message: string | null }>, shop: { __typename: 'Shop', customerSetPasswordUrl: string | null, defaultMailSenderAddress: string | null, defaultMailSenderName: string | null, description: string | null, name: string, reserveStockDurationAnonymousUser: number | null, reserveStockDurationAuthenticatedUser: number | null, limitQuantityPerCheckout: number | null, companyAddress: { __typename: 'Address', city: string, cityArea: string, companyName: string, countryArea: string, firstName: string, id: string, lastName: string, phone: string | null, postalCode: string, streetAddress1: string, streetAddress2: string, country: { __typename: 'CountryDisplay', code: string, country: string } } | null, countries: Array<{ __typename: 'CountryDisplay', code: string, country: string }>, domain: { __typename: 'Domain', host: string } } | null } | null, shopDomainUpdate?: { __typename: 'ShopDomainUpdate', errors: Array<{ __typename: 'ShopError', code: ShopErrorCode, field: string | null, message: string | null }>, shop: { __typename: 'Shop', domain: { __typename: 'Domain', host: string, url: string } } | null } | null, shopAddressUpdate: { __typename: 'ShopAddressUpdate', errors: Array<{ __typename: 'ShopError', code: ShopErrorCode, field: string | null, message: string | null }>, shop: { __typename: 'Shop', companyAddress: { __typename: 'Address', city: string, cityArea: string, companyName: string, countryArea: string, firstName: string, id: string, lastName: string, phone: string | null, postalCode: string, streetAddress1: string, streetAddress2: string, country: { __typename: 'CountryDisplay', code: string, country: string } } | null } | null } | null };
export type ShopSettingsUpdateMutation = { __typename: 'Mutation', shopSettingsUpdate: { __typename: 'ShopSettingsUpdate', errors: Array<{ __typename: 'ShopError', code: ShopErrorCode, field: string | null, message: string | null }>, shop: { __typename: 'Shop', customerSetPasswordUrl: string | null, defaultMailSenderAddress: string | null, defaultMailSenderName: string | null, description: string | null, name: string, reserveStockDurationAnonymousUser: number | null, reserveStockDurationAuthenticatedUser: number | null, limitQuantityPerCheckout: number | null, companyAddress: { __typename: 'Address', city: string, cityArea: string, companyName: string, countryArea: string, firstName: string, id: string, lastName: string, phone: string | null, postalCode: string, streetAddress1: string, streetAddress2: string, country: { __typename: 'CountryDisplay', code: string, country: string } } | null, countries: Array<{ __typename: 'CountryDisplay', code: string, country: string }>, domain: { __typename: 'Domain', host: string } } | null } | null, shopAddressUpdate: { __typename: 'ShopAddressUpdate', errors: Array<{ __typename: 'ShopError', code: ShopErrorCode, field: string | null, message: string | null }>, shop: { __typename: 'Shop', companyAddress: { __typename: 'Address', city: string, cityArea: string, companyName: string, countryArea: string, firstName: string, id: string, lastName: string, phone: string | null, postalCode: string, streetAddress1: string, streetAddress2: string, country: { __typename: 'CountryDisplay', code: string, country: string } } | null } | null } | null };
export type SiteSettingsQueryVariables = Exact<{ [key: string]: never; }>;

View file

@ -1,108 +0,0 @@
import { Card, CardContent, TextField } from "@material-ui/core";
import CardTitle from "@saleor/components/CardTitle";
import FormSpacer from "@saleor/components/FormSpacer";
import { IS_CLOUD_INSTANCE } from "@saleor/config";
import { ShopErrorFragment } from "@saleor/graphql";
import { commonMessages } from "@saleor/intl";
import { getFormErrors } from "@saleor/utils/errors";
import getShopErrorMessage from "@saleor/utils/errors/shop";
import React from "react";
import { useIntl } from "react-intl";
import { SiteSettingsPageFormData } from "../SiteSettingsPage";
interface SiteDetailsSettingsCardProps {
data: SiteSettingsPageFormData;
errors: ShopErrorFragment[];
disabled: boolean;
onChange: (event: React.ChangeEvent<any>) => void;
}
const SiteDetailsSettingsCard: React.FC<SiteDetailsSettingsCardProps> = ({
data,
disabled,
errors,
onChange
}) => {
const intl = useIntl();
const formErrors = getFormErrors(["name", "domain", "description"], errors);
return (
<Card>
<CardTitle
title={intl.formatMessage(commonMessages.generalInformations)}
/>
<CardContent>
<TextField
disabled={disabled}
error={!!formErrors.name}
fullWidth
name="name"
label={intl.formatMessage({
defaultMessage: "Name of your store"
})}
helperText={
getShopErrorMessage(formErrors.name, intl) ||
intl.formatMessage({
defaultMessage:
"Name of your store is shown on tab in web browser"
})
}
value={data.name}
onChange={onChange}
InputProps={{
inputProps: {
autoComplete: "none"
}
}}
/>
<FormSpacer />
<TextField
disabled={disabled}
error={!!formErrors.domain}
fullWidth
name="domain"
label={intl.formatMessage({
defaultMessage: "Store domain"
})}
helperText={getShopErrorMessage(formErrors.domain, intl)}
value={data.domain}
onChange={onChange}
InputProps={{
readOnly: IS_CLOUD_INSTANCE,
inputProps: {
autoComplete: "none"
}
}}
/>
<FormSpacer />
<TextField
disabled={disabled}
error={!!formErrors.description}
fullWidth
name="description"
label={intl.formatMessage({
defaultMessage: "Store description"
})}
helperText={
getShopErrorMessage(formErrors.description, intl) ||
intl.formatMessage({
defaultMessage:
"Store description is shown on taskbar after your store name"
})
}
value={data.description}
onChange={onChange}
InputProps={{
inputProps: {
autoComplete: "none"
}
}}
/>
</CardContent>
</Card>
);
};
SiteDetailsSettingsCard.displayName = "SiteDetailsSettingsCard";
export default SiteDetailsSettingsCard;

View file

@ -1,2 +0,0 @@
export { default } from "./SiteDetailsSettingsCard";
export * from "./SiteDetailsSettingsCard";

View file

@ -22,7 +22,6 @@ import React from "react";
import { useIntl } from "react-intl";
import SiteCheckoutSettingsCard from "../SiteCheckoutSettingsCard";
import SiteSettingsDetailsCard from "../SiteDetailsSettingsCard";
import { messages } from "./messages";
export interface SiteSettingsPageAddressFormData {
@ -39,8 +38,6 @@ export interface SiteSettingsPageAddressFormData {
export interface SiteSettingsPageFormData
extends SiteSettingsPageAddressFormData {
description: string;
domain: string;
name: string;
reserveStockDurationAnonymousUser: number;
reserveStockDurationAuthenticatedUser: number;
limitQuantityPerCheckout: number;
@ -116,8 +113,6 @@ const SiteSettingsPage: React.FC<SiteSettingsPageProps> = props => {
const initialForm: SiteSettingsPageFormData = {
...initialFormAddress,
description: shop?.description || "",
domain: shop?.domain.host || "",
name: shop?.name || "",
reserveStockDurationAnonymousUser: shop?.reserveStockDurationAnonymousUser,
reserveStockDurationAuthenticatedUser:
shop?.reserveStockDurationAuthenticatedUser,
@ -154,19 +149,6 @@ const SiteSettingsPage: React.FC<SiteSettingsPageProps> = props => {
underline={true}
/>
<Grid variant="inverted">
<PageSectionHeader
title={intl.formatMessage(sectionNames.siteSettings)}
description={intl.formatMessage(
messages.sectionDetailsDescription
)}
/>
<SiteSettingsDetailsCard
data={data}
errors={errors}
disabled={disabled}
onChange={change}
/>
<Hr className={classes.hr} />
<PageSectionHeader
title={intl.formatMessage(messages.sectionCheckoutTitle)}
description={intl.formatMessage(

View file

@ -1,11 +1,6 @@
import { defineMessages } from "react-intl";
export const messages = defineMessages({
sectionDetailsDescription: {
defaultMessage:
"These are general information about your store. They define what is the URL of your store and what is shown in browsers taskbar.",
description: "section description"
},
sectionCheckoutTitle: {
defaultMessage: "Checkout Configuration",
description: "section title"

View file

@ -2,7 +2,6 @@ import { gql } from "@apollo/client";
export const shopSettingsUpdate = gql`
mutation ShopSettingsUpdate(
$shopDomainInput: SiteDomainInput!
$shopSettingsInput: ShopSettingsInput!
$addressInput: AddressInput
$isCloudInstance: Boolean!
@ -15,17 +14,6 @@ export const shopSettingsUpdate = gql`
...Shop
}
}
shopDomainUpdate(input: $shopDomainInput) @skip(if: $isCloudInstance) {
errors {
...ShopError
}
shop {
domain {
host
url
}
}
}
shopAddressUpdate(input: $addressInput) {
errors {
...ShopError

View file

@ -38,11 +38,8 @@ export const SiteSettings: React.FC<SiteSettingsProps> = () => {
] = useShopSettingsUpdateMutation({
onCompleted: data => {
if (
[
...data.shopAddressUpdate.errors,
...data.shopSettingsUpdate.errors,
...(data.shopDomainUpdate?.errors || [])
].length === 0
[...data.shopAddressUpdate.errors, ...data.shopSettingsUpdate.errors]
.length === 0
) {
notify({
status: "success",
@ -53,7 +50,6 @@ export const SiteSettings: React.FC<SiteSettingsProps> = () => {
});
const errors = [
...(updateShopSettingsOpts.data?.shopDomainUpdate?.errors || []),
...(updateShopSettingsOpts.data?.shopSettingsUpdate.errors || []),
...(updateShopSettingsOpts.data?.shopAddressUpdate.errors || [])
];
@ -79,10 +75,6 @@ export const SiteSettings: React.FC<SiteSettingsProps> = () => {
updateShopSettings({
variables: {
addressInput,
shopDomainInput: {
domain: data.domain,
name: data.name
},
shopSettingsInput: {
description: data.description,
reserveStockDurationAnonymousUser:

View file

@ -238575,163 +238575,6 @@ exports[`Storyshots Views / Site settings / Page default 1`] = `
<div
class="Grid-root-id Grid-inverted-id"
>
<div>
<div
class="MuiTypography-root-id MuiTypography-h5-id"
>
Site Settings
</div>
<div
class="VerticalSpacer-container-id VerticalSpacer-container-id"
/>
<div
class="MuiTypography-root-id MuiTypography-body2-id"
>
These are general information about your store. They define what is the URL of your store and what is shown in browsers taskbar.
</div>
</div>
<div
class="MuiPaper-root-id MuiCard-root-id MuiPaper-elevation0-id MuiPaper-rounded-id"
>
<div
class="MuiCardHeader-root-id"
>
<div
class="MuiCardHeader-content-id"
>
<span
class="MuiTypography-root-id MuiCardHeader-title-id MuiTypography-h5-id MuiTypography-displayBlock-id"
>
General Information
</span>
</div>
</div>
<div
class="MuiCardContent-root-id"
>
<div
class="MuiFormControl-root-id MuiTextField-root-id MuiFormControl-fullWidth-id"
>
<label
class="MuiFormLabel-root-id MuiInputLabel-root-id MuiInputLabel-formControl-id MuiInputLabel-animated-id MuiInputLabel-shrink-id MuiInputLabel-outlined-id MuiFormLabel-filled-id"
data-shrink="true"
>
Name of your store
</label>
<div
class="MuiInputBase-root-id MuiOutlinedInput-root-id MuiInputBase-fullWidth-id MuiInputBase-formControl-id"
>
<input
aria-invalid="false"
autocomplete="none"
class="MuiInputBase-input-id MuiOutlinedInput-input-id"
name="name"
type="text"
value="Saleor e-commerce"
/>
<fieldset
aria-hidden="true"
class="PrivateNotchedOutline-root-id MuiOutlinedInput-notchedOutline-id"
>
<legend
class="PrivateNotchedOutline-legendLabelled-id PrivateNotchedOutline-legendNotched-id"
>
<span>
Name of your store
</span>
</legend>
</fieldset>
</div>
<p
class="MuiFormHelperText-root-id MuiFormHelperText-contained-id MuiFormHelperText-filled-id"
>
Name of your store is shown on tab in web browser
</p>
</div>
<div
class="FormSpacer-spacer-id"
/>
<div
class="MuiFormControl-root-id MuiTextField-root-id MuiFormControl-fullWidth-id"
>
<label
class="MuiFormLabel-root-id MuiInputLabel-root-id MuiInputLabel-formControl-id MuiInputLabel-animated-id MuiInputLabel-shrink-id MuiInputLabel-outlined-id MuiFormLabel-filled-id"
data-shrink="true"
>
Store domain
</label>
<div
class="MuiInputBase-root-id MuiOutlinedInput-root-id MuiInputBase-fullWidth-id MuiInputBase-formControl-id"
>
<input
aria-invalid="false"
autocomplete="none"
class="MuiInputBase-input-id MuiOutlinedInput-input-id"
name="domain"
type="text"
value="localhost:8000"
/>
<fieldset
aria-hidden="true"
class="PrivateNotchedOutline-root-id MuiOutlinedInput-notchedOutline-id"
>
<legend
class="PrivateNotchedOutline-legendLabelled-id PrivateNotchedOutline-legendNotched-id"
>
<span>
Store domain
</span>
</legend>
</fieldset>
</div>
</div>
<div
class="FormSpacer-spacer-id"
/>
<div
class="MuiFormControl-root-id MuiTextField-root-id MuiFormControl-fullWidth-id"
>
<label
class="MuiFormLabel-root-id MuiInputLabel-root-id MuiInputLabel-formControl-id MuiInputLabel-animated-id MuiInputLabel-shrink-id MuiInputLabel-outlined-id MuiFormLabel-filled-id"
data-shrink="true"
>
Store description
</label>
<div
class="MuiInputBase-root-id MuiOutlinedInput-root-id MuiInputBase-fullWidth-id MuiInputBase-formControl-id"
>
<input
aria-invalid="false"
autocomplete="none"
class="MuiInputBase-input-id MuiOutlinedInput-input-id"
name="description"
type="text"
value="Lorem ipsum dolor sit amet"
/>
<fieldset
aria-hidden="true"
class="PrivateNotchedOutline-root-id MuiOutlinedInput-notchedOutline-id"
>
<legend
class="PrivateNotchedOutline-legendLabelled-id PrivateNotchedOutline-legendNotched-id"
>
<span>
Store description
</span>
</legend>
</fieldset>
</div>
<p
class="MuiFormHelperText-root-id MuiFormHelperText-contained-id MuiFormHelperText-filled-id"
>
Store description is shown on taskbar after your store name
</p>
</div>
</div>
</div>
<hr
class="Hr-root-id SiteSettingsPage-hr-id"
/>
<div>
<div
class="MuiTypography-root-id MuiTypography-h5-id"
@ -239332,168 +239175,6 @@ exports[`Storyshots Views / Site settings / Page form errors 1`] = `
<div
class="Grid-root-id Grid-inverted-id"
>
<div>
<div
class="MuiTypography-root-id MuiTypography-h5-id"
>
Site Settings
</div>
<div
class="VerticalSpacer-container-id VerticalSpacer-container-id"
/>
<div
class="MuiTypography-root-id MuiTypography-body2-id"
>
These are general information about your store. They define what is the URL of your store and what is shown in browsers taskbar.
</div>
</div>
<div
class="MuiPaper-root-id MuiCard-root-id MuiPaper-elevation0-id MuiPaper-rounded-id"
>
<div
class="MuiCardHeader-root-id"
>
<div
class="MuiCardHeader-content-id"
>
<span
class="MuiTypography-root-id MuiCardHeader-title-id MuiTypography-h5-id MuiTypography-displayBlock-id"
>
General Information
</span>
</div>
</div>
<div
class="MuiCardContent-root-id"
>
<div
class="MuiFormControl-root-id MuiTextField-root-id MuiFormControl-fullWidth-id"
>
<label
class="MuiFormLabel-root-id MuiInputLabel-root-id MuiInputLabel-formControl-id MuiInputLabel-animated-id MuiInputLabel-shrink-id MuiInputLabel-outlined-id MuiFormLabel-error-id MuiInputLabel-error-id MuiFormLabel-filled-id"
data-shrink="true"
>
Name of your store
</label>
<div
class="MuiInputBase-root-id MuiOutlinedInput-root-id MuiInputBase-error-id MuiOutlinedInput-error-id MuiInputBase-fullWidth-id MuiInputBase-formControl-id"
>
<input
aria-invalid="true"
autocomplete="none"
class="MuiInputBase-input-id MuiOutlinedInput-input-id"
name="name"
type="text"
value="Saleor e-commerce"
/>
<fieldset
aria-hidden="true"
class="PrivateNotchedOutline-root-id MuiOutlinedInput-notchedOutline-id"
>
<legend
class="PrivateNotchedOutline-legendLabelled-id PrivateNotchedOutline-legendNotched-id"
>
<span>
Name of your store
</span>
</legend>
</fieldset>
</div>
<p
class="MuiFormHelperText-root-id MuiFormHelperText-contained-id MuiFormHelperText-error-id MuiFormHelperText-filled-id"
>
Invalid value
</p>
</div>
<div
class="FormSpacer-spacer-id"
/>
<div
class="MuiFormControl-root-id MuiTextField-root-id MuiFormControl-fullWidth-id"
>
<label
class="MuiFormLabel-root-id MuiInputLabel-root-id MuiInputLabel-formControl-id MuiInputLabel-animated-id MuiInputLabel-shrink-id MuiInputLabel-outlined-id MuiFormLabel-error-id MuiInputLabel-error-id MuiFormLabel-filled-id"
data-shrink="true"
>
Store domain
</label>
<div
class="MuiInputBase-root-id MuiOutlinedInput-root-id MuiInputBase-error-id MuiOutlinedInput-error-id MuiInputBase-fullWidth-id MuiInputBase-formControl-id"
>
<input
aria-invalid="true"
autocomplete="none"
class="MuiInputBase-input-id MuiOutlinedInput-input-id"
name="domain"
type="text"
value="localhost:8000"
/>
<fieldset
aria-hidden="true"
class="PrivateNotchedOutline-root-id MuiOutlinedInput-notchedOutline-id"
>
<legend
class="PrivateNotchedOutline-legendLabelled-id PrivateNotchedOutline-legendNotched-id"
>
<span>
Store domain
</span>
</legend>
</fieldset>
</div>
<p
class="MuiFormHelperText-root-id MuiFormHelperText-contained-id MuiFormHelperText-error-id MuiFormHelperText-filled-id"
>
Invalid value
</p>
</div>
<div
class="FormSpacer-spacer-id"
/>
<div
class="MuiFormControl-root-id MuiTextField-root-id MuiFormControl-fullWidth-id"
>
<label
class="MuiFormLabel-root-id MuiInputLabel-root-id MuiInputLabel-formControl-id MuiInputLabel-animated-id MuiInputLabel-shrink-id MuiInputLabel-outlined-id MuiFormLabel-error-id MuiInputLabel-error-id MuiFormLabel-filled-id"
data-shrink="true"
>
Store description
</label>
<div
class="MuiInputBase-root-id MuiOutlinedInput-root-id MuiInputBase-error-id MuiOutlinedInput-error-id MuiInputBase-fullWidth-id MuiInputBase-formControl-id"
>
<input
aria-invalid="true"
autocomplete="none"
class="MuiInputBase-input-id MuiOutlinedInput-input-id"
name="description"
type="text"
value="Lorem ipsum dolor sit amet"
/>
<fieldset
aria-hidden="true"
class="PrivateNotchedOutline-root-id MuiOutlinedInput-notchedOutline-id"
>
<legend
class="PrivateNotchedOutline-legendLabelled-id PrivateNotchedOutline-legendNotched-id"
>
<span>
Store description
</span>
</legend>
</fieldset>
</div>
<p
class="MuiFormHelperText-root-id MuiFormHelperText-contained-id MuiFormHelperText-error-id MuiFormHelperText-filled-id"
>
Invalid value
</p>
</div>
</div>
</div>
<hr
class="Hr-root-id SiteSettingsPage-hr-id"
/>
<div>
<div
class="MuiTypography-root-id MuiTypography-h5-id"
@ -240094,166 +239775,6 @@ exports[`Storyshots Views / Site settings / Page loading 1`] = `
<div
class="Grid-root-id Grid-inverted-id"
>
<div>
<div
class="MuiTypography-root-id MuiTypography-h5-id"
>
Site Settings
</div>
<div
class="VerticalSpacer-container-id VerticalSpacer-container-id"
/>
<div
class="MuiTypography-root-id MuiTypography-body2-id"
>
These are general information about your store. They define what is the URL of your store and what is shown in browsers taskbar.
</div>
</div>
<div
class="MuiPaper-root-id MuiCard-root-id MuiPaper-elevation0-id MuiPaper-rounded-id"
>
<div
class="MuiCardHeader-root-id"
>
<div
class="MuiCardHeader-content-id"
>
<span
class="MuiTypography-root-id MuiCardHeader-title-id MuiTypography-h5-id MuiTypography-displayBlock-id"
>
General Information
</span>
</div>
</div>
<div
class="MuiCardContent-root-id"
>
<div
class="MuiFormControl-root-id MuiTextField-root-id MuiFormControl-fullWidth-id"
>
<label
class="MuiFormLabel-root-id MuiInputLabel-root-id MuiInputLabel-formControl-id MuiInputLabel-animated-id MuiInputLabel-outlined-id MuiFormLabel-disabled-id MuiInputLabel-disabled-id"
data-shrink="false"
>
Name of your store
</label>
<div
class="MuiInputBase-root-id MuiOutlinedInput-root-id MuiInputBase-disabled-id MuiOutlinedInput-disabled-id MuiInputBase-fullWidth-id MuiInputBase-formControl-id"
>
<input
aria-invalid="false"
autocomplete="none"
class="MuiInputBase-input-id MuiOutlinedInput-input-id MuiInputBase-disabled-id MuiOutlinedInput-disabled-id"
disabled=""
name="name"
type="text"
value=""
/>
<fieldset
aria-hidden="true"
class="PrivateNotchedOutline-root-id MuiOutlinedInput-notchedOutline-id"
>
<legend
class="PrivateNotchedOutline-legendLabelled-id"
>
<span>
Name of your store
</span>
</legend>
</fieldset>
</div>
<p
class="MuiFormHelperText-root-id MuiFormHelperText-contained-id MuiFormHelperText-disabled-id"
>
Name of your store is shown on tab in web browser
</p>
</div>
<div
class="FormSpacer-spacer-id"
/>
<div
class="MuiFormControl-root-id MuiTextField-root-id MuiFormControl-fullWidth-id"
>
<label
class="MuiFormLabel-root-id MuiInputLabel-root-id MuiInputLabel-formControl-id MuiInputLabel-animated-id MuiInputLabel-outlined-id MuiFormLabel-disabled-id MuiInputLabel-disabled-id"
data-shrink="false"
>
Store domain
</label>
<div
class="MuiInputBase-root-id MuiOutlinedInput-root-id MuiInputBase-disabled-id MuiOutlinedInput-disabled-id MuiInputBase-fullWidth-id MuiInputBase-formControl-id"
>
<input
aria-invalid="false"
autocomplete="none"
class="MuiInputBase-input-id MuiOutlinedInput-input-id MuiInputBase-disabled-id MuiOutlinedInput-disabled-id"
disabled=""
name="domain"
type="text"
value=""
/>
<fieldset
aria-hidden="true"
class="PrivateNotchedOutline-root-id MuiOutlinedInput-notchedOutline-id"
>
<legend
class="PrivateNotchedOutline-legendLabelled-id"
>
<span>
Store domain
</span>
</legend>
</fieldset>
</div>
</div>
<div
class="FormSpacer-spacer-id"
/>
<div
class="MuiFormControl-root-id MuiTextField-root-id MuiFormControl-fullWidth-id"
>
<label
class="MuiFormLabel-root-id MuiInputLabel-root-id MuiInputLabel-formControl-id MuiInputLabel-animated-id MuiInputLabel-outlined-id MuiFormLabel-disabled-id MuiInputLabel-disabled-id"
data-shrink="false"
>
Store description
</label>
<div
class="MuiInputBase-root-id MuiOutlinedInput-root-id MuiInputBase-disabled-id MuiOutlinedInput-disabled-id MuiInputBase-fullWidth-id MuiInputBase-formControl-id"
>
<input
aria-invalid="false"
autocomplete="none"
class="MuiInputBase-input-id MuiOutlinedInput-input-id MuiInputBase-disabled-id MuiOutlinedInput-disabled-id"
disabled=""
name="description"
type="text"
value=""
/>
<fieldset
aria-hidden="true"
class="PrivateNotchedOutline-root-id MuiOutlinedInput-notchedOutline-id"
>
<legend
class="PrivateNotchedOutline-legendLabelled-id"
>
<span>
Store description
</span>
</legend>
</fieldset>
</div>
<p
class="MuiFormHelperText-root-id MuiFormHelperText-contained-id MuiFormHelperText-disabled-id"
>
Store description is shown on taskbar after your store name
</p>
</div>
</div>
</div>
<hr
class="Hr-root-id SiteSettingsPage-hr-id"
/>
<div>
<div
class="MuiTypography-root-id MuiTypography-h5-id"