## Summary Add support for multi-workspace feature and adjust configurations and states accordingly. - Introduced new state isMultiWorkspaceEnabledState. - Updated ClientConfigProviderEffect component to handle multi-workspace. - Modified GraphQL schema and queries to include multi-workspace related configurations. - Adjusted server environment variables and their respective documentation to support multi-workspace toggle. - Updated server-side logic to handle new multi-workspace configurations and conditions.
34 lines
688 B
TypeScript
34 lines
688 B
TypeScript
import { isDefined } from 'src/utils/is-defined';
|
|
|
|
export const buildWorkspaceURL = (
|
|
baseUrl: string,
|
|
subdomain: string | null,
|
|
{
|
|
withPathname,
|
|
withSearchParams,
|
|
}: {
|
|
withPathname?: string;
|
|
withSearchParams?: Record<string, string | number>;
|
|
} = {},
|
|
) => {
|
|
const url = new URL(baseUrl);
|
|
|
|
if (subdomain && subdomain.length > 0) {
|
|
url.hostname = subdomain + '.' + url.hostname;
|
|
}
|
|
|
|
if (withPathname) {
|
|
url.pathname = withPathname;
|
|
}
|
|
|
|
if (withSearchParams) {
|
|
Object.entries(withSearchParams).forEach(([key, value]) => {
|
|
if (isDefined(value)) {
|
|
url.searchParams.set(key, value.toString());
|
|
}
|
|
});
|
|
}
|
|
|
|
return url;
|
|
};
|