Skip to content

Commit

Permalink
feat: rename Offscreen to Activity & support native Activity
Browse files Browse the repository at this point in the history
  • Loading branch information
IVLIU committed Feb 20, 2024
1 parent 25c1ea3 commit 9a6af7f
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 19 deletions.
23 changes: 23 additions & 0 deletions src/Activity.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import React, { Suspense } from 'react';
import { Repeater } from './Repeater';
import type { FC, ExoticComponent } from 'react';
import type { IProps } from './type';

// @ts-ignore
const NativeActivity = (React.Activity || React.unstable_Activity) as ExoticComponent<IProps> | undefined;

export const Activity: FC<IProps> = (props) => {
const { mode, children } = props;

if(NativeActivity) {
return (
<Activity mode={mode}>{children}</Activity>
)
}

return (
<Suspense fallback={null}>
<Repeater mode={mode}>{children}</Repeater>
</Suspense>
);
};
13 changes: 0 additions & 13 deletions src/OffScreen.tsx

This file was deleted.

6 changes: 4 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
export { Offscreen } from './OffScreen';
export { Activity } from './Activity';
export { Activity as Offscreen } from './Activity';

export type { OffscreenMode } from './type';
export type { ActivityMode } from './type';
export type { ActivityMode as OffscreenMode } from './type';
4 changes: 2 additions & 2 deletions src/type.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { ReactNode } from 'react';

export type OffscreenMode = 'visible' | 'hidden';
export type ActivityMode = 'visible' | 'hidden';

export interface IProps {
mode: OffscreenMode;
mode: ActivityMode;
children: ReactNode;
}
4 changes: 2 additions & 2 deletions test/blah.test.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { Thing } from '../src';
import { Activity } from '../src';

describe('it', () => {
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<Thing />, div);
ReactDOM.render(<Activity mode="visible">children</Activity>, div);
ReactDOM.unmountComponentAtNode(div);
});
});

0 comments on commit 9a6af7f

Please sign in to comment.