| interface ResultSwitcherProps { |
| currentIndex: number; |
| totalCount: number; |
| onPrevious: () => void; |
| onNext: () => void; |
| } |
|
|
| const ResultSwitcher: React.FC<ResultSwitcherProps> = ({ |
| currentIndex, |
| totalCount, |
| onPrevious, |
| onNext, |
| }) => { |
| if (totalCount <= 1) { |
| return null; |
| } |
|
|
| return ( |
| <div className="flex items-center justify-start gap-1 self-center bg-gray-700 pb-2 text-xs"> |
| <button |
| className="hover-button rounded-md p-1 text-gray-400 hover:bg-gray-700 hover:text-gray-200 disabled:hover:text-gray-400" |
| type="button" |
| onClick={onPrevious} |
| disabled={currentIndex === 0} |
| > |
| <svg |
| stroke="currentColor" |
| fill="none" |
| strokeWidth="1.5" |
| viewBox="0 0 24 24" |
| strokeLinecap="round" |
| strokeLinejoin="round" |
| className="h-4 w-4" |
| height="1em" |
| width="1em" |
| xmlns="http://www.w3.org/2000/svg" |
| > |
| <polyline points="15 18 9 12 15 6" /> |
| </svg> |
| </button> |
| <span className="flex-shrink-0 tabular-nums"> |
| {currentIndex + 1} / {totalCount} |
| </span> |
| <button |
| className="hover-button rounded-md p-1 text-gray-400 hover:bg-gray-700 hover:text-gray-200 disabled:hover:text-gray-400" |
| type="button" |
| onClick={onNext} |
| disabled={currentIndex === totalCount - 1} |
| > |
| <svg |
| stroke="currentColor" |
| fill="none" |
| strokeWidth="1.5" |
| viewBox="0 0 24 24" |
| strokeLinecap="round" |
| strokeLinejoin="round" |
| className="h-4 w-4" |
| height="1em" |
| width="1em" |
| xmlns="http://www.w3.org/2000/svg" |
| > |
| <polyline points="9 18 15 12 9 6" /> |
| </svg> |
| </button> |
| </div> |
| ); |
| }; |
|
|
| export default ResultSwitcher; |
|
|