import React, { useEffect, useState, useContext } from "react";
import { FormattedMessage, useIntl } from "react-intl";
import {
Alert,
Button,
Card,
Container,
Form,
InputGroup,
} from "react-bootstrap";
import * as GQL from "src/core/generated-graphql";
import {
mutateSetup,
useConfigureUI,
useSystemStatus,
} from "src/core/StashService";
import { Link, useHistory } from "react-router-dom";
import { ConfigurationContext } from "src/hooks/Config";
import StashConfiguration from "../Settings/StashConfiguration";
import { Icon } from "../Shared/Icon";
import { LoadingIndicator } from "../Shared/LoadingIndicator";
import { ModalComponent } from "../Shared/Modal";
import { FolderSelectDialog } from "../Shared/FolderSelect/FolderSelectDialog";
import {
faEllipsisH,
faExclamationTriangle,
faQuestionCircle,
} from "@fortawesome/free-solid-svg-icons";
import { releaseNotes } from "src/docs/en/ReleaseNotes";
export const Setup: React.FC = () => {
const { configuration, loading: configLoading } =
useContext(ConfigurationContext);
const [saveUI] = useConfigureUI();
const [step, setStep] = useState(0);
const [configLocation, setConfigLocation] = useState("");
const [stashes, setStashes] = useState
{chunks},
}}
/>
{chunks},
}}
/>
{chunks},
}}
/>
{chunks},
}}
/>
{chunks},
}}
/>
{chunks},
}}
/>
{chunks},
strong: (chunks: string) => {chunks},
}}
/>
{chunks},
}}
/>
<current working directory>/config.yml;
}
if (configLocation === "") {
return $HOME/.stash/config.yml;
}
return {configLocation};
}
function maybeRenderExclusions(s: GQL.StashConfig) {
if (!s.excludeImage && !s.excludeVideo) {
return;
}
const excludes = [];
if (s.excludeVideo) {
excludes.push("videos");
}
if (s.excludeImage) {
excludes.push("images");
}
return `(excludes ${excludes.join(" and ")})`;
}
function renderStashLibraries() {
return (
{s.path}
{maybeRenderExclusions(s)}
{databaseFile !== ""
? databaseFile
: intl.formatMessage({
id: "setup.confirm.default_db_location",
})}
{generatedLocation !== ""
? generatedLocation
: intl.formatMessage({
id: "setup.confirm.default_generated_content_location",
})}
{cacheLocation !== ""
? cacheLocation
: intl.formatMessage({
id: "setup.confirm.default_cache_location",
})}
{storeBlobsInDatabase
? intl.formatMessage({
id: "setup.confirm.blobs_use_database",
})
: blobsLocation !== ""
? blobsLocation
: intl.formatMessage({
id: "setup.confirm.default_blobs_location",
})}
{chunks},
localized_task: intl.formatMessage({
id: "config.categories.tasks",
}),
localized_scan: intl.formatMessage({ id: "actions.scan" }),
}}
/>
{chunks},
}}
/>