Files
pwap/pezkuwi-sdk-ui/packages/react-api/src/hoc/api.tsx
T
Claude 60a800b33e Add Pezkuwi SDK UI - Polkadot.js Apps clone
- Clone Polkadot.js Apps repository
- Update package.json with Pezkuwi branding
- Add Pezkuwi endpoint to production chains (wss://pezkuwichain.app:9944)
- Create comprehensive README for SDK UI
- Set up project structure with all packages

Next steps:
- Apply Kurdistan colors (Kesk, Sor, Zer, Spi + Black) to UI theme
- Replace logos with Pezkuwi branding
- Test build and deployment
2025-11-14 00:55:17 +00:00

39 lines
1.2 KiB
TypeScript

// Copyright 2017-2025 @polkadot/react-api authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { ApiProps, SubtractProps } from '../types.js';
import type { DefaultProps } from './types.js';
import React from 'react';
import { ApiCtx } from '@polkadot/react-hooks/ctx/Api';
import { assert } from '@polkadot/util';
export default function withApi <P extends ApiProps> (Inner: React.ComponentType<P>, defaultProps: DefaultProps = {}): React.ComponentType<any> {
class WithApi extends React.PureComponent<SubtractProps<P, ApiProps>> {
private component: any = React.createRef();
public override render (): React.ReactNode {
return (
<ApiCtx.Consumer>
{(apiProps?: ApiProps): React.ReactNode => {
assert(apiProps?.api, 'Application root must be wrapped inside \'react-api/Api\' to provide API context');
return (
<Inner
{...defaultProps}
{...(apiProps as any)}
{...this.props}
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
ref={this.component}
/>
);
}}
</ApiCtx.Consumer>
);
}
}
return WithApi;
}