mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Scenes: Support new top nav * Page: Make Page component support new and old dashboard page layouts * Pass scrollbar props * Fixing flex layout for dashboard * Progress on dashboard settings working with topnav * Updated * Annotations working * Starting to work fully * Fix merge issue * Fixed tests * Added buttons to annotations editor * Updating tests * Move Page component to each page * fixed general settings page * Fixed versions * Fixed annotation item page * Variables section working * Fixed tests * Minor fixes to versions * Update * Fixing unit tests * Adding add variable button * Restore annotations edit form so it's the same as before * Fixed semicolon in dashboard permissions * Fixing unit tests * Fixing tests * Minor test update * Fixing unit test * Fixing e2e tests * fix for e2e test * fix a11y issues * Changing places Settings -> General * Trying to fix a11y * I hope this fixes the e2e test * Fixing merge issue * tweak
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
import React, { useState } from 'react';
|
|
|
|
import { Page } from 'app/core/components/PageNew/Page';
|
|
|
|
import { LinkSettingsEdit, LinkSettingsList } from '../LinksSettings';
|
|
import { newLink } from '../LinksSettings/LinkSettingsEdit';
|
|
|
|
import { SettingsPageProps } from './types';
|
|
|
|
export type LinkSettingsMode = 'list' | 'new' | 'edit';
|
|
|
|
export function LinksSettings({ dashboard, sectionNav }: SettingsPageProps) {
|
|
const [editIdx, setEditIdx] = useState<number | null>(null);
|
|
|
|
const onGoBack = () => {
|
|
setEditIdx(null);
|
|
};
|
|
|
|
const onNew = () => {
|
|
dashboard.links = [...dashboard.links, { ...newLink }];
|
|
setEditIdx(dashboard.links.length - 1);
|
|
};
|
|
|
|
const onEdit = (idx: number) => {
|
|
setEditIdx(idx);
|
|
};
|
|
|
|
const isEditing = editIdx !== null;
|
|
|
|
return (
|
|
<Page navModel={sectionNav}>
|
|
{!isEditing && <LinkSettingsList dashboard={dashboard} onNew={onNew} onEdit={onEdit} />}
|
|
{isEditing && <LinkSettingsEdit dashboard={dashboard} editLinkIdx={editIdx!} onGoBack={onGoBack} />}
|
|
</Page>
|
|
);
|
|
}
|