This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 7182a1b  chore: Removes common storybook (#14418)
7182a1b is described below

commit 7182a1b390759f1ce7cea30a7dbac46d1538e0a6
Author: Michael S. Molina <[email protected]>
AuthorDate: Wed May 5 13:53:14 2021 -0300

    chore: Removes common storybook (#14418)
---
 .../src/common/components/common.stories.tsx       | 134 ---------------------
 .../components/CronPicker/CronPicker.stories.tsx   |  88 ++++++++++++++
 .../components/InfoTooltip/InfoTooltip.stories.tsx |  79 ++++++++++++
 .../src/components/InfoTooltip/index.tsx           |   2 +-
 .../src/components/Modal/Modal.stories.tsx         |  50 ++++++++
 superset-frontend/src/components/Modal/Modal.tsx   |   2 +-
 6 files changed, 219 insertions(+), 136 deletions(-)

diff --git a/superset-frontend/src/common/components/common.stories.tsx 
b/superset-frontend/src/common/components/common.stories.tsx
deleted file mode 100644
index 333d0e9..0000000
--- a/superset-frontend/src/common/components/common.stories.tsx
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import React, { useState, useRef, useCallback } from 'react';
-import { action } from '@storybook/addon-actions';
-import { withKnobs } from '@storybook/addon-knobs';
-import { CronPicker, CronError } from 'src/components/CronPicker';
-import Modal from 'src/components/Modal';
-import InfoTooltip from 'src/components/InfoTooltip';
-import { Input, Divider } from '.';
-
-export default {
-  title: 'Common components',
-  decorators: [withKnobs],
-};
-
-export const StyledModal = () => (
-  <Modal
-    disablePrimaryButton={false}
-    onHandledPrimaryAction={action('Primary action')}
-    primaryButtonName="Danger"
-    primaryButtonType="danger"
-    show
-    onHide={action('hidden')}
-    title="I'm a modal!"
-  >
-    <div>hi!</div>
-  </Modal>
-);
-
-export const StyledInfoTooltip = (args: any) => {
-  const styles = {
-    padding: '100px 0 0 200px',
-  };
-
-  return (
-    <div style={styles}>
-      <InfoTooltip tooltip="This is the text that will display!" {...args} />
-    </div>
-  );
-};
-
-StyledInfoTooltip.args = {
-  placement: 'right',
-  trigger: 'hover',
-};
-
-StyledInfoTooltip.argTypes = {
-  placement: {
-    name: 'Placement',
-    control: {
-      type: 'select',
-      options: [
-        'bottom',
-        'left',
-        'right',
-        'top',
-        'topLeft',
-        'topRight',
-        'bottomLeft',
-        'bottomRight',
-        'leftTop',
-        'leftBottom',
-        'rightTop',
-        'rightBottom',
-      ],
-    },
-  },
-
-  trigger: {
-    name: 'Trigger',
-    control: {
-      type: 'select',
-      options: ['hover', 'click'],
-    },
-  },
-};
-
-export function StyledCronPicker() {
-  // @ts-ignore
-  const inputRef = useRef<Input>(null);
-  const defaultValue = '30 5 * * 1,6';
-  const [value, setValue] = useState(defaultValue);
-  const customSetValue = useCallback(
-    (newValue: string) => {
-      setValue(newValue);
-      inputRef.current?.setValue(newValue);
-    },
-    [inputRef],
-  );
-  const [error, onError] = useState<CronError>();
-
-  return (
-    <div>
-      <Input
-        ref={inputRef}
-        onBlur={event => {
-          setValue(event.target.value);
-        }}
-        onPressEnter={() => {
-          setValue(inputRef.current?.input.value || '');
-        }}
-      />
-
-      <Divider />
-
-      <CronPicker
-        clearButton={false}
-        value={value}
-        setValue={customSetValue}
-        onError={onError}
-      />
-
-      <p style={{ marginTop: 20 }}>
-        Error: {error ? error.description : 'undefined'}
-      </p>
-    </div>
-  );
-}
diff --git a/superset-frontend/src/components/CronPicker/CronPicker.stories.tsx 
b/superset-frontend/src/components/CronPicker/CronPicker.stories.tsx
new file mode 100644
index 0000000..7f89936
--- /dev/null
+++ b/superset-frontend/src/components/CronPicker/CronPicker.stories.tsx
@@ -0,0 +1,88 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import React, { useState, useRef, useCallback } from 'react';
+import { Input, Divider } from 'src/common/components';
+import { CronPicker, CronError, CronProps } from '.';
+
+export default {
+  title: 'CronPicker',
+  component: CronPicker,
+};
+
+export const InteractiveCronPicker = (props: CronProps) => {
+  // @ts-ignore
+  const inputRef = useRef<Input>(null);
+  const [value, setValue] = useState(props.value);
+  const customSetValue = useCallback(
+    (newValue: string) => {
+      setValue(newValue);
+      inputRef.current?.setValue(newValue);
+    },
+    [inputRef],
+  );
+  const [error, onError] = useState<CronError>();
+
+  return (
+    <div>
+      <Input
+        ref={inputRef}
+        onBlur={event => {
+          setValue(event.target.value);
+        }}
+        onChange={e => setValue(e.target.value || '')}
+      />
+      <Divider />
+      <CronPicker
+        {...props}
+        value={value}
+        setValue={customSetValue}
+        onError={onError}
+      />
+      {error && <p style={{ marginTop: 20 }}>Error: {error.description}</p>}
+    </div>
+  );
+};
+
+InteractiveCronPicker.args = {
+  clearButton: false,
+  disabled: false,
+  readOnly: false,
+};
+
+InteractiveCronPicker.argTypes = {
+  value: {
+    defaultValue: '30 5 * * *',
+    table: {
+      disable: true,
+    },
+  },
+  theme: {
+    table: {
+      disable: true,
+    },
+  },
+};
+
+InteractiveCronPicker.story = {
+  parameters: {
+    knobs: {
+      disable: true,
+    },
+  },
+};
diff --git 
a/superset-frontend/src/components/InfoTooltip/InfoTooltip.stories.tsx 
b/superset-frontend/src/components/InfoTooltip/InfoTooltip.stories.tsx
new file mode 100644
index 0000000..d7c8196
--- /dev/null
+++ b/superset-frontend/src/components/InfoTooltip/InfoTooltip.stories.tsx
@@ -0,0 +1,79 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import React from 'react';
+import InfoTooltip, { InfoTooltipProps } from 'src/components/InfoTooltip';
+
+export default {
+  title: 'InfoTooltip',
+  component: InfoTooltip,
+};
+
+export const InteractiveInfoTooltip = (props: InfoTooltipProps) => {
+  const styles = {
+    padding: '100px 0 0 200px',
+  };
+
+  return (
+    <div style={styles}>
+      <InfoTooltip {...props} />
+    </div>
+  );
+};
+
+InteractiveInfoTooltip.args = {
+  tooltip: 'This is the text that will display!',
+};
+
+InteractiveInfoTooltip.argTypes = {
+  placement: {
+    defaultValue: 'top',
+    control: {
+      type: 'select',
+      options: [
+        'bottom',
+        'left',
+        'right',
+        'top',
+        'topLeft',
+        'topRight',
+        'bottomLeft',
+        'bottomRight',
+        'leftTop',
+        'leftBottom',
+        'rightTop',
+        'rightBottom',
+      ],
+    },
+  },
+  trigger: {
+    defaultValue: 'hover',
+    control: {
+      type: 'select',
+      options: ['hover', 'click'],
+    },
+  },
+};
+
+InteractiveInfoTooltip.story = {
+  parameters: {
+    knobs: {
+      disable: true,
+    },
+  },
+};
diff --git a/superset-frontend/src/components/InfoTooltip/index.tsx 
b/superset-frontend/src/components/InfoTooltip/index.tsx
index 7091cd9..b355859 100644
--- a/superset-frontend/src/components/InfoTooltip/index.tsx
+++ b/superset-frontend/src/components/InfoTooltip/index.tsx
@@ -22,7 +22,7 @@ import { styled } from '@superset-ui/core';
 import { Tooltip } from 'src/components/Tooltip';
 import Icon from 'src/components/Icon';
 
-interface InfoTooltipProps {
+export interface InfoTooltipProps {
   className?: string;
   tooltip: string;
   placement?:
diff --git a/superset-frontend/src/components/Modal/Modal.stories.tsx 
b/superset-frontend/src/components/Modal/Modal.stories.tsx
new file mode 100644
index 0000000..4a7b06e
--- /dev/null
+++ b/superset-frontend/src/components/Modal/Modal.stories.tsx
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import React from 'react';
+import Modal, { ModalProps } from '.';
+
+export default {
+  title: 'Modal',
+  component: Modal,
+};
+
+export const InteractiveModal = (props: ModalProps) => (
+  <Modal {...props}>Hi</Modal>
+);
+
+InteractiveModal.args = {
+  disablePrimaryButton: false,
+  primaryButtonName: 'Danger',
+  primaryButtonType: 'danger',
+  show: true,
+  title: "I'm a modal!",
+};
+
+InteractiveModal.argTypes = {
+  onHandledPrimaryAction: { action: 'onHandledPrimaryAction' },
+  onHide: { action: 'onHide' },
+};
+
+InteractiveModal.story = {
+  parameters: {
+    knobs: {
+      disable: true,
+    },
+  },
+};
diff --git a/superset-frontend/src/components/Modal/Modal.tsx 
b/superset-frontend/src/components/Modal/Modal.tsx
index 5421f0a..661d216 100644
--- a/superset-frontend/src/components/Modal/Modal.tsx
+++ b/superset-frontend/src/components/Modal/Modal.tsx
@@ -23,7 +23,7 @@ import { css } from '@emotion/react';
 import { Modal as BaseModal } from 'src/common/components';
 import Button from 'src/components/Button';
 
-interface ModalProps {
+export interface ModalProps {
   className?: string;
   children: React.ReactNode;
   disablePrimaryButton?: boolean;

Reply via email to