Fix zulip page

This commit is contained in:
Weves
2023-11-28 16:26:00 -08:00
committed by Chris Weaver
parent c83a450ec4
commit 429016d4a2

View File

@@ -59,7 +59,7 @@ const MainSection = () => {
(connectorIndexingStatus) => (connectorIndexingStatus) =>
connectorIndexingStatus.connector.source === "zulip" connectorIndexingStatus.connector.source === "zulip"
); );
const zulipCredential: Credential<ZulipCredentialJson> = const zulipCredential: Credential<ZulipCredentialJson> | undefined =
credentialsData.filter( credentialsData.filter(
(credential) => credential.credential_json?.zuliprc_content (credential) => credential.credential_json?.zuliprc_content
)[0]; )[0];
@@ -134,72 +134,86 @@ const MainSection = () => {
Step 2: Which workspaces do you want to make searchable? Step 2: Which workspaces do you want to make searchable?
</h2> </h2>
{zulipConnectorIndexingStatuses.length > 0 && ( {zulipCredential ? (
<> <>
<p className="text-sm mb-2"> {zulipConnectorIndexingStatuses.length > 0 && (
We pull the latest messages from each workspace listed below every{" "} <>
<b>10</b> minutes. <p className="text-sm mb-2">
</p> We pull the latest messages from each workspace listed below
<div className="mb-2"> every <b>10</b> minutes.
<ConnectorsTable </p>
connectorIndexingStatuses={zulipConnectorIndexingStatuses} <div className="mb-2">
liveCredential={zulipCredential} <ConnectorsTable
getCredential={(credential) => connectorIndexingStatuses={zulipConnectorIndexingStatuses}
credential.credential_json.zuliprc_content liveCredential={zulipCredential}
getCredential={(credential) =>
credential.credential_json.zuliprc_content
}
specialColumns={[
{
header: "Realm name",
key: "realm_name",
getValue: (ccPairStatus) =>
ccPairStatus.connector.connector_specific_config
.realm_name,
},
{
header: "Realm url",
key: "realm_url",
getValue: (ccPairStatus) =>
ccPairStatus.connector.connector_specific_config
.realm_url,
},
]}
onUpdate={() =>
mutate("/api/manage/admin/connector/indexing-status")
}
onCredentialLink={async (connectorId) => {
if (zulipCredential) {
await linkCredential(connectorId, zulipCredential.id);
mutate("/api/manage/admin/connector/indexing-status");
}
}}
/>
</div>
</>
)}
<div className="border-solid border-gray-600 border rounded-md p-6 mt-4">
<h2 className="font-bold mb-3">Connect to a New Realm</h2>
<ConnectorForm<ZulipConfig>
nameBuilder={(values) => `ZulipConnector-${values.realm_name}`}
ccPairNameBuilder={(values) => values.realm_name}
source="zulip"
inputType="poll"
credentialId={zulipCredential.id}
formBody={
<>
<TextFormField name="realm_name" label="Realm name:" />
<TextFormField name="realm_url" label="Realm url:" />
</>
} }
specialColumns={[ validationSchema={Yup.object().shape({
{ realm_name: Yup.string().required(
header: "Realm name", "Please enter the realm name"
key: "realm_name", ),
getValue: (ccPairStatus) => realm_url: Yup.string().required("Please enter the realm url"),
ccPairStatus.connector.connector_specific_config.realm_name, })}
}, initialValues={{
{ realm_name: "",
header: "Realm url", realm_url: "",
key: "realm_url",
getValue: (ccPairStatus) =>
ccPairStatus.connector.connector_specific_config.realm_url,
},
]}
onUpdate={() =>
mutate("/api/manage/admin/connector/indexing-status")
}
onCredentialLink={async (connectorId) => {
if (zulipCredential) {
await linkCredential(connectorId, zulipCredential.id);
mutate("/api/manage/admin/connector/indexing-status");
}
}} }}
refreshFreq={10 * 60} // 10 minutes
/> />
</div> </div>
</> </>
) : (
<p className="text-sm">
Please provide your Zulip credentials in Step 1 first! Once done with
that, you can then specify which Zulip realms you want to make
searchable.
</p>
)} )}
<div className="border-solid border-gray-600 border rounded-md p-6 mt-4">
<h2 className="font-bold mb-3">Connect to a New Realm</h2>
<ConnectorForm<ZulipConfig>
nameBuilder={(values) => `ZulipConnector-${values.realm_name}`}
ccPairNameBuilder={(values) => values.realm_name}
source="zulip"
inputType="poll"
credentialId={zulipCredential.id}
formBody={
<>
<TextFormField name="realm_name" label="Realm name:" />
<TextFormField name="realm_url" label="Realm url:" />
</>
}
validationSchema={Yup.object().shape({
realm_name: Yup.string().required("Please enter the realm name"),
realm_url: Yup.string().required("Please enter the realm url"),
})}
initialValues={{
realm_name: "",
realm_url: "",
}}
refreshFreq={10 * 60} // 10 minutes
/>
</div>
</> </>
); );
}; };